Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
A Few Basics
REST – a basic understanding
Uniform interface
Client and server
Stateless
Cacheable
Layered system
Code on demand (COD)
More on REST
Imperative and Reactive programming
Reactive Streams
Benefits of Reactive programming
Reactive programming in Java and Spring 5
Our RESTful web service architecture
Summary
Building RESTful Web Services in Spring 5 with Maven
Apache Maven
Creating a project with Maven
Viewing a POM file after creating a project
POM file structure
Understanding POM dependencies
Adding Log4j 2.9.1 to POM dependency
Dependency trees
Spring Boot
Developing RESTful web services
Creating a project base
Working with your favorite IDE
Summary
Flux and Mono (Reactor Support) in Spring
Benefits of Reactive programming
Reactive Core and Streams
Back pressures and Reactive Streams
WebFlux
Basic REST API
Flux
Mono
User class with Reactive – REST
Summary
CRUD Operations in Spring REST
CRUD operations in Spring REST
HTTP methods
Reactive server initialization
Sample values in the repository
getAllUsers – mapping
getAllUsers – implementation in the handler and repository
Testing the endpoint – getAllUsers
getUser – implementation in the handler and repository
Testing the endpoint – getUser
createUser – implementation in the handler and repository
Testing the endpoint – createUser
updateUser – implementation in the handler and repository
Testing the endpoint – updateUser
deleteUser – implementation in the handler and repository
Testing the endpoint – deleteUser
Summary
CRUD Operations in Plain REST (Without Reactive) and File Upload
Mapping CRUD operations to HTTP methods
Creating resources
CRUD operation in Spring 5 (without Reactive)
getAllUsers – implementation
getUser – implementation
createUser – implementation
updateUser – implementation
deleteUser – implementation
File uploads – REST API
Testing the file upload
Summary
Spring Security and JWT (JSON Web Token)
Spring Security
Authentication and authorization
JSON Web Token (JWT)
JWT dependency
Creating a JWT token
Generating a token
Getting a subject from a JWT token
Getting a subject from a token
Summary
Testing RESTful Web Services
JUnit
MockMvc
Testing a single user
Postman
Getting all the users – Postman
Adding a user – Postman
Generating a JWT – Postman
Getting the subject from the token
SoapUI
Getting all the users – SoapUI
Generating JWT SoapUI
Getting the subject from the token – SoapUI
jsoup
Getting a user – jsoup
Adding a user – jsoup
Running the test cases
Summary
Performance
HTTP compression
Content negotiation
Accept-Encoding
Content-Encoding
Server-driven content negotiation
Agent-driven content negotiation
HTTP caching
HTTP cache control
Public caching
Private caching
No-cache
Only-if-cached
Cache validation
ETags
Last-Modified/If-Modified-Since headers
Cache implementation
The REST resource
Caching with ETags
Summary
AOP and Logger Controls
Aspect-oriented programming (AOP)
AOP (@Before) with execution
Testing AOP @Before execution
AOP (@Before) with annotation
Testing AOP @Before annotation
Integrating AOP with JWT
Logger controls
SLF4J, Log4J, and Logback
Logback framework
Logback dependency and configuration
Logging levels
Logback implementation in class
Summary
Building a REST Client and Error Handling
Building a REST client
RestTemplate
Error handling
Customized exception
Summary
Scaling
Clustering
Benefits of clustering
Load balancing
Scaling databases
Vertical scaling
Horizontal scaling
Read replicas
Pool connections
Use multiple masters
Load balancing in DB servers
Database partitioning
Sharding (horizontal partitioning)
Vertical partitioning
Distributed caching
Data-tier caching
First-level caching
Second-level caching
Application-tier caching
Memcached
Redis
Hazelcast
Ehcache
Riak
Aerospike
Infinispan
Cache2k
Other distributed caching
Amazon ElastiCache
Oracle distributed cache (Coherence)
Summary
Microservice Basics
Monolithic architecture and its drawbacks
Introduction to microservices
Independence and autonomy
Resilience and fault tolerance
Automated environment
Stateless
Benefits of microservices
Microservice components
Configuration server
Load balancer
Service discovery
Circuit breaker
Edge server
Microservice tools
Netflix Eureka
Netflix Zuul
Spring Cloud Netflix
Netflix Ribbon
Netflix Hystrix
Netflix Turbine
HashiCorp Consul
Eclipse MicroProfile
Summary
Ticket Management – Advanced CRUD
Ticket management using CRUD operations
Registration
User types
User POJO
Customer registration
Admin registration
CSR registration
Login and token management
Generating a token
Customer login
Admin login
CSR login
Ticket management
Ticket POJO
Getting a user by token
User Ticket management
Ticket controller
The UserTokenRequired interface
The UserTokenRequiredAspect class
Getting my tickets – customer
Allowing a user to view their single ticket
Allowing a customer to update a ticket
Updating a ticket – service (TicketServiceImpl)
Deleting a ticket
Deleting a service – service (TicketServiceImpl)
Deleting my ticket – API (ticket controller)
Admin Ticket management
Allowing a admin to view all tickets
Getting all tickets – service (TicketServiceImpl)
Getting all tickets – API (ticket controller)
The AdminTokenRequired interface
The AdminTokenRequiredAspect class
Admin updates a ticket
Updating a ticket by admin – service (TicketServiceImpl)
Allowing admin to view a single ticket
Allowing admin to delete tickets
Deleting tickets – service (TicketServiceImpl):
Deleting tickets by admin – API (ticket controller):
CSR Ticket management
CSR updates a ticket
CSRTokenRequired AOP
CSRTokenRequiredAspect
CSR view all tickets
Viewing all tickets by CSR – API (ticket controller)
CSR view single ticket
CSR delete tickets
Deleting tickets – service (TicketServivceImpl)
Deleting tickets by CSR – API (ticket controller)
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
← Prev
Back
Next →
← Prev
Back
Next →