Implementera Java REST webbtjänster

Webbtjänster baserade på REST principen är det moderna sättet att hantera servertjänster. I denna kurs får du lära dig både att hantera klient-sidan såväl som att designa och implementera server-sidan.

Implementera Java REST webbtjänster
3 dagar
Advanced
Javautvecklare
Rutinerad i Java programmering
  • Java JDK
  • MS Visual Code || JetBrains IntelliJ IDEA
Här ser du vilka kursdatum som är tillgängliga. Klicka på en av datumknapparna för att anmäla dig till ett kurstillfälle. På kursen pratar läraren svenska, medan vårt kursmaterial alltid är författat på engelska.

Du sitter bekvämt framför datorn och deltar i kursen via internet. Vi använder programvaran Zoom för alla våra fjärrkurser.

I priset ingår kursmaterial som PDF.

Pris: 15 000 kr + MOMS/VAT (25%)

Du sitter bekvämt i ett av våra klassrum, vilka finns centralt placerade i Stockholms innerstad (Östermalmstorg).

I priset ingår tryckt kursmaterial (och som PDF), samt kaffe/te med smörgås på förmiddagen och kaffe/te med bulle på eftermiddagen.

Pris: 20 000 kr + MOMS/VAT (25%)

Om ni är tre eller fler personer från samma företags, kan ni beställa en företagsanpassad kurs. Då håller vi kursen på ett datum som passar er. Antingen på plats i era lokaler eller som en fjärrkurs. Vi kan även mixa fjärr- och klassrumskurs, om några av er önskar delta på distans medan resten föredrar att ses på plats.

Företagsanpassad Kurs

Här är ett sammandrag av vad du får lära dig på kursen.

  • Be able to design your own REST-WS API
  • Use REST-WS command-line clients
  • Implement Java clients to call REST-WS
  • Manage XML, JSON and other payload
  • Design and implement REST-WS server-side
  • Build REST-WS server-side with Spark-Java Build REST-WS server-side with JAX-RS annotated code and Jersey
  • Generate technical REST-WS documentation with Swagger
  • Manage authentication via JWT
  • Use new HttpClient that came in Java 11
  • Use the new Micronaut framework to implement REST-WS servers

Concepts

HTTP

  • Understand the HTTP protocol
  • HTTP request operations
  • HTTP response codes
  • MIME types
  • Understand the HTTPS hand-shake

REST

  • Understand the REST web services design idea
  • REST resource URIs
  • REST operations
  • Sub-resource URIs
  • REST anti-patterns to avoid

SOAP

  • What is SOAP
  • What is WSDL
  • Sample SOAP request and response
  • Understand why SOAP is not used any more

Payload Encoding

  • Open-source libraries for XML
  • Open-source libraries for JSON
  • Overview of Simple XML
  • Parsing XML
  • Generating XML
  • Overview of GSON
  • Parsing JSON
  • Generating JSON
  • Using CSV as the payload encoding
  • Using Java Properties format as the payload encoding

Clients

Web Services CLI Tools

  • Why use CLI tools
  • cURL - standard HTTP tool
  • HTTPie - smart REST-WS tool
  • jq - smart JSON processing
  • json-server - quick back-end server
  • JSON PlaceHolder - fake back-end server

Java HTTP Client Invocations

  • Class URL
  • Class URLConnection
  • Class HttpURLConnection
  • Fetching data via HTTP GET
  • Pushing data via HTTP POST
  • Using HTTP PUT/PATCH/DELETE

Java REST Client Tools

  • Using David-Webb
  • Using RESTy

Using HttpClient

  • What is the new HttpClient
  • Synchronous vs. asynchronous mode
  • Simple HTTP operations
  • Handle response bodies
  • Performing async requests

AJAX

  • What is AJAX
  • What is asynchronous processing in JavaScript
  • Understanding XMLHttpRequest
  • Brief about jQuery

Servers

Setting up a Spark-Java Server

  • Overview of Spark-Java
  • Installation
  • Setting up routes
  • Handling JSON payload in the response
  • Handling JSON payload in the request
  • Designing CRUD REST operations
  • Dealing with exceptions
  • Best practices

Groovy, Grails & Spock

  • A quick intro and motivation why using Groovy tools might be a good idea
  • Groovy - a super-set of Java (as in Java++)
  • Grails - a framework built on Spring & Hibernate, to create web-apps quickly
  • Spock - a versatile testing framework
  • Groovy REST-WS client

Using Micronaut

  • What is Micronaut
  • Installation
  • Using the CLI
  • Using Micronaut annotations
  • Controllers
  • Deploying for microservices
  • Configuration

CORS

  • What is CORS
  • Request & response CORS headers
  • Understanding the CORS pre-flight operations
  • CORS client-server interaction

JAX-RS

Annotations Based REST-WS with JAX-RS

  • What is JAX-RS
  • Resource annotations
  • HTTP method operations
  • URI parameters
  • Method parameter annotations
  • JAX-RS implementations
  • Using Jersey
  • Jersey payload encoding alternatives for JSON & XML
  • Using JSON-P
  • Using Moxy
  • Using a Grizzly embedded HTTP server for a Jersey app
  • CRUD operations in JAX-RS @ Jersey

Generated REST-WS Documentation with Swagger

  • What is Swagger
  • The Swagger architecture
  • Swagger JSON specification file
  • Swagger Editor
  • Swagger UI web-app
  • API annotations
  • How to create a REST-WS Jersey web-app with automatic and interactive documentation by Swagger

Authentication

Authentication using JWT

  • What is a web token
  • How does JWT authentication work
  • Installation of jjwt
  • Using Java JWT
  • Typical use cases
  • How to augment Spark with an JWT authentication filter
  • Authentication online services

Authentication using OATH and a 3rd party

  • What is OAUTH
  • How can a user logon to my site by authenticating somewhere else
  • Installing of the SocialAuth Java library
  • Using Google as the provider
  • Setting up Spark-Java for 3rd party authentication