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.
- Java JDK
- MS Visual Code || JetBrains IntelliJ IDEA
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.
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