
Explain how HTTP enables internet and how a client uses GET, POST, PUT, and DELETE to interact with resources on a server, RESTful web service as a client-server, service-oriented architecture.
Explore how hateoas uses hypermedia as the engine of application state to guide rest clients through resources via hyperlinks and pagination.
Create your first restful web service app in Java, configure a rest start up with an application path, expose a test rest endpoint with a get method and produces annotation.
Build a mock database rest api for a car parking lot, implementing post, get, put, and delete with a singleton startup and a car dto stored in a map.
Create a car resource post endpoint that consumes form data (license plate and color), generates an id, updates the database, and returns a 200 response with the created entity.
Implement a get request to retrieve cars, returning a json map with id and data. Use the accept header for json and observe 200 ok and 406 not acceptable errors.
Learn how to implement a put-based update for car resource by reading form data or mult valued maps, using a car id path parameter, validating existence, and returning updated car.
Implement a delete endpoint for car records by id, validate existence, perform removal, and return car not found or car deleted successfully, with notes on soft deletion.
Understand content negotiation in restful web services, where accept headers select media types, encoding, and language, with default and custom writers handling data formats.
Explore the application class for deploying a restful service, comparing manual resource registration and package scanning, and using singletons to maintain state across requests.
Implement a custom message body writer for hash map data, create a wrapper with an ex-MIL root element, and register it in the application to enable ex-MIL responses.
Create a new message body reader to parse a hash map of integer car IDs to cars, enabling the rest endpoint to add multiple cars at once across formats.
Implement a ParamConverterProvider to transform form-encoded dates into local time and back, register it manually in a rest app, and ensure seamless string-to-local time conversion.
Learn how to implement an XMLAdapter and use package annotations to marshal local time for json and xml responses, register the adapter, and handle map types in RESTful Java services.
Learn how a container response filter implements cors by adding access-control headers to responses, enabling secure cross-origin resource sharing for rest endpoints.
Implement a container request filter that assigns application/json as the default accept header when it is missing, using the request context and registering the filter.
Develop a general message data transfer object and an exception mapper to return a user-friendly 406 not acceptable response for unsupported media types.
Explore using the query param annotation to pass overnight as a URL parameter for car resources, enabling overnight state, pagination, and dynamic request handling in a RESTful Java API.
Learn to implement a global case-insensitive query parameter filter in a Java REST app by abstracting the logic into a reusable container request filter, applied globally with a binding annotation.
Explore the priority annotation to order filters and interceptors for Jack Sarus endpoints, using authentication and user constants to control processing order, defaulting to 5000 when unset.
Explore securing car creation in a rest java service by implementing a car creation constraint filter that validates a specific header with a name-binding annotation at method level.
Implement basic authentication with a JAAS-based JDBC realm in GlassFish by creating a two-table user and role database, hashing passwords with SHA-256, and configuring the realm in the server.
Configure basic authentication by creating a persistence unit and data source, and define security constraints and role mappings in the deployment descriptor, then test the connection.
Configure basic authentication for rest resources by mapping the admin role in the deployment descriptor, enabling authentication constraints, and testing with a base64 encoded username:password in the authorization header.
Developers can now create restful webservices with Java, building a solid ground layer to become a capable API developer and evangelist.
Download and install GlassFish server 5 by decompressing the archive to a fixed location. Use NetBeans to add an app server, select domain and ports, and preserve session across redeployment.
This course is intended for those who want to learn how to create web services using Java EE.
The course is built so that from the first day, you'll be coding web services, and it is created in a way that by the end of the course you'll have a working RESTful Web Service.
- Basic RESTful API security concepts
- Learn about annotations to add fine-grained functionality to each endpoint
- Learn how to customize Data Transfer objects
- Perform external calls to your APIs
- Understand Postman to test each endpoint and verify that all the requirements are met
Java basics are required.