
Master REST API development with Java and Spring, covering core concepts, design, testing, security, documentation, and deployment. Build weather API services with Spring Boot and MySQL for full stack apps.
Discover essential software installation for building spring boot rest apis: JDK, STS, curl, Postman, Maven, Git, MySQL Server and MySQL Workbench, with LTS Java versions and macOS focus.
Install Oracle JDK 17 on macOS using the arm 64 or x64 dmg installer, verify with java -version and javac, and check the sha256 checksum.
Install Spring Tool Suite IDE on macOS by downloading the appropriate dmg for arm64 or x86_64, drag to applications, and launch with the default workspace, using the included OpenJDK 17.
Install curl and Postman to test REST APIs, using curl for simple requests and Postman for complex testing, including GitHub endpoints like api.github.com, rate limit, and zen.
Install Apache Maven by downloading the binary distribution, unzip it, and configure system environment variables (MAVEN_HOME and PATH) on macOS, then verify with mvn -v.
Explore how Git, a free distributed version control system, helps manage source code and collaboration; macOS preinstalls Git, clone from GitHub, deploy to Heroku or AWS.
Install and configure MySQL Community Server on macOS by downloading the DMG archive, running the installer, and setting a strong root password.
Download and install MySQL Workbench, connect to a local MySQL server, and begin visually designing, modeling, generating, and managing databases for the Spring Boot REST APIs course.
Explore the fundamentals of APIs, their meaning, and types—web, REST, SOAP, RPC, and websocket—along with real-world examples of private, public, partner, and composite APIs.
Learn what a REST API is, what REST stands for representational state transfer, and how it works with JSON over HTTP using methods like GET, POST, PUT, and DELETE.
Explain why rest api is popular by highlighting independence, flexibility, lightweight json data, http-based client-server architecture, and stateless, scalable support for microservice-based applications and backends powering single-page applications.
Understand what URIs are and how URNs and URLs differ, including their structure with scheme, host name, and path, and see REST API endpoints identified by URIs.
Learn HTTP methods and status codes for Spring Boot REST APIs, including get, post, put, batch, and delete, with codes such as 200, 201, 202, and 204.
Understand hateoas in rest api development by seeing how hypermedia guides navigation through embedded links, enabling actions like view, deposit, and withdraw.
Explore hypertext application language, its conventions for expressing hyperlinks in rest API responses, and how resources, properties, and links structure support discoverability and interoperability.
Explore link relation in rest APIs, learn how rel defines resource relationships, and apply standardized, discoverable links like self and collection from the registry for state transitions.
Create your first REST API with Spring Boot, exposing a hello REST API endpoint and a JSON response showing a message and the current time. Test with curl.
Build a second rest api in spring boot that handles unit conversions with a conversion details model, length converter, and post mapping, tested via postman and json request bodies.
build a spring boot rest api for student management, implementing create, retrieve, update, and delete operations with a static list, using rest controller mappings and postman testing.
Explore resource naming conventions for REST APIs, covering URI structure, path segments, query and fragment usage, and rules like using hyphens, lowercase letters, nouns, without extensions, and nested resources.
Apply the correct http methods to manage resources (get, head, post, put, patch, delete, options) and use status codes like 303, 307, and 415 to ensure idempotent, predictable REST APIs.
Learn to design rest APIs with hypermedia (HATEOAS) using hybrid media, embedding links in responses so clients follow actions and decouple server and client.
Explore versioning strategies for REST APIs, including header-based and path-based versioning, and apply semantic versioning with major, minor, and patch increments for breaking changes and new features.
Design secure rest APIs by differentiating public and private endpoints, implementing authentication and authorization, and using EdgeDB with JWT and OAuth tokens over SSL for protected access.
Document rest APIs with spring rest docs and open API specifications to make them discoverable and up to date, including sample requests, authentication, authorization, and error handling.
Explore API caching for REST APIs, boosting performance and reducing latency and bandwidth by caching responses on client and server sides with http headers like cache-control, etag, and last-modified.
Learn why API rate limits protect resources, prevent abuse, and improve availability for all users. Explore unauthenticated versus authenticated limits, throttling behavior, and a bucket-based approach to implement rate limiting.
Explore the weather forecast API system, including real-time data from global weather stations, admin and client roles, and how developers integrate weather APIs to enrich apps and web experiences.
Explore the primary workflows of API usage: setting up client apps for weather stations and integrating APIs in developer applications to enable real-time weather data updates.
Explore six sample applications built with Spring Boot REST APIs, including the weather API service, API client manager, wiser data manager, weather forecast website, weather station, and weather info app.
Understand the data requirements and relational database design for a weather api service, detailing users, admin and client roles, locations, and real-time, hourly, and daily forecast tables and their relationships.
Understand the logical layers of the visor api system, from security filters and rest controllers to cache, service, and repository layers, and deploy on localhost or cloud containers.
Request access to the private reef code repository on GitHub by sending your Udemy username; you'll be added as a collaborator and can browse online, clone, or download the code.
Browse GitHub project code in the web browser without installing software, search files, navigate classes and methods, and view file history with access to private repositories.
Download the project code from GitHub as a zip, extract it, and import it into your IDE to run and test locally, with access to the private repository if needed.
Clone the River central project from a private GitHub repository using the command line, then import the code into your IDE and explore the API common and API service subprojects.
Clone weather API project from GitHub into your IDE via the git perspective, authenticate with GitHub personal access token, and import rest API common and weather API service Maven sub-projects.
Browse the code at a specific commit by using git log main to view commits, then switch with git checkout to inspect main class of the weather API service project.
Disconnect your client project from the remote repository on GitHub to avoid pushing changes, using git remote rm origin or eclipse team disconnect, while still browsing code history.
Explore the open API specification and swagger tools to design, document, and generate code for REST APIs, including swagger editor, swagger UI, and code generation capabilities.
Explore a sample api design with Swagger by editing an open api file in Swagger Editor and testing endpoints in Swagger UI, observing real-time updates.
Design an example API with swagger to model a users endpoint, define responses and a user schema using the swagger editor and OpenAPI documentation.
Generate server code for the example API using Swagger; generate skeleton rest API controllers; import into IDE; implement list users; run the Spring Boot application; test with curl.
Showcases how to access docs for the example API with Swagger UI. The Swagger UI reveals the open API definition at the API docs URL and lets you test endpoints.
Generate Java rest client code for the example API, import the project into the summary tool suite, fix dependencies (javax.annotation), and run tests to print the API response body.
Package the example api into an executable with Maven, clean the build, configure Java version, and run the Spring Boot app on localhost; test with curl and the Swagger UI.
Deploy the example API on Heroku using the Heroku CLI and git push, with a Java 17 runtime, to expose the Spring Boot API and test its user endpoint.
Design and implement a swagger-driven student API using a swagger editor, covering create, read, update, and delete operations with an in-memory data store and Java client code.
Design weather forecast APIs (version 1) guides building an OpenAPI swagger-driven API with five groups: location, real-time weather, hourly and daily forecasts, and full weather.
Learn when to use Swagger to design, explore, and test REST APIs, create an OpenAPI-based API design document, and decide if Swagger editor fits your team's API development needs.
Explore how Swagger designs, visualizes, and tests REST APIs per the open API specification. Use Swagger Editor and Swagger UI to design before coding and generate server and client code.
Build a multi-module Maven project for a weather forecast API, sharing a common library across modules and supporting API service, API client manager, data manager, website, desktop, and mobile.
Create a MySQL database schema for a weather forecast API using MySQL Workbench, connecting to local server, with a default character set, and tables generated later from Java entity classes.
Configure data source properties for the Weather API Service, including jdbc url, username, password, and hibernate settings, with hybrid forward engineering and sql formatting in the MySQL console.
Build a zero location geolocation database for weather forecast apis using ip-based lookup with ip to location dot com and ip location lite db3 for country, region and city mappings.
Identify API requirements, then implement repository, service, and controller layers, add security, caching, and rate limiting, and document the API with unit and integration tests.
Create a location entity class mapping Java objects to the locations table, with fields like code and city name, then define a location repository and generate the table with Hibernate.
Implement the add location API (/v1/locations) end-to-end by wiring repository, service, and controller layers, and validate with unit tests and Postman-driven integration tests using Swagger.
Learn to unit test a Spring Boot rest api with web mvc test, mock beans, and an object mapper, validating the location api controller through json assertions and status checks.
Perform integration testing for the location API with curl and postman, validating controller, service, and repository layers and handling error and success responses.
Build the list locations API in a Spring Boot REST app with repository, service, and controller layers, plus unit and integration tests, returning 200 with locations or 204 when none.
Learn to implement a get location by code API in Spring Boot, including repository, service, and controller layers, with unit and integration tests using Postman.
Explore updating an existing location via the service and controller layers, including a no location with the given code custom exception, and testing with curl and postman.
implement the delete location api, where locations are not actually deleted but marked in the database, and validate via repository, service, and controller tests, plus curl and postman checks.
Review keynotes on Spring Boot REST APIs using a MySQL relational database via Sovereign Data API and Hybrid Framework, with generated repository code and JPA tests for repositories and controllers.
Welcome to Spring Boot REST APIs Ultimate course!
My name is Nam Ha Minh. I’m the instructor who will lead you through this course. You know, I’ve been programming with Java for nearly 2 decades, since the days of Java 1.3 and 1.4. I’m a professional Java developer certified by Oracle.
I’m very glad that you’re interested in this course. Let me introduce exactly what this course is about, and everything you need to know before enrolling.
What this Course is Exactly About:
This is a comprehensive course about REST API development, from understanding REST API Core Concepts to API Design Best Practices and Implementing APIs with Spring Boot; from Securing APIs to Testing APIs; from Documenting APIs to Deploying APIs.
This course is also about development of different kinds of REST Client applications such as Web app (Spring MVC), React app, desktop app (Java Swing) and mobile app (Android).
What You Will Learn to Build:
Through this comprehensive course, you will learn to build Weather APIs Service using Spring Boot with MySQL Database.
Then you will learn to build a React application for managing weather data.
Use Spring MVC to build a web application for managing users and API clients.
And another Spring MVC application for a Weather Forecast website.
Then you will learn to build a sample mobile app that displays embedded weather information, using Android.
Finally, you will learn to build a Java desktop application with Swing, that demonstrates updating weather data from a weather station.
The React app, Weather Forecast website, Android app and Swing app are consumers of the Weather APIs Service.
Key technologies will be used:
You'll learn how to use the following technologies (not all mentioned):
- Back-end technologies: Spring framework, Spring Boot, Spring Data JPA, Spring Data REST, Spring REST Docs, Spring HATEOAS
- Thymeleaf as server-side template engine for Spring MVC application
- FasterXML/jackson Java JSON library
- Security technologies: Spring Security, Spring Security OAuth2, JSON Web Token (JWT) for Java and Android
- Database technologies: MySQL Relational database, Hibernate ORM framework
- Testing technologies: mockito - mocking framework for unit tests, JUnit testing framework
- Redis as caching solution
- Bucket4J as API Rate Limit solution
- REST Clients: React for Single Page Application, Android for mobile app, Java Swing for desktop app
- Front-end technologies: HTML, CSS, Javascript, Bootstrap, jQuery.
Main software programs & tools will be used:
To develop the applications in this course, you will need to use (not all mentioned): Java Development Kit (JDK), Spring Tool Suite IDE, MySQL Community server, MySQL Workbench, curl, Postman, Redis, Docker, Swagger online editor and codegen, Git, Heroku CLI, AWS CLI.
What you will get by finishing this course:
By completing this course, you will get comprehensive REST API expertise in Analysis, Design, Implement, Test, Secure, Deploy & Best Practices. In other words, you master all the techniques involved in REST API development.
You will also get Full-stack development expertise in Backend (Java and Spring), Frontend (React, Javascript, HTML, CSS), Database (MySQL), Deployment (Heroku, AWS), Version Control (Git).
More importantly, when you complete learning this course, I believe you will get Job–ready Skills, such as Technical competence, Self management, Accuracy and Attention to Detail, Professionalism that your employer will love, and Problem Solving skill which is important to succeed in your career.
And finally, you will get a Certificate of Completion issued by Udemy, which is a great thing you can add to your Resume.