Building RESTful web services with Spring 5 leverage the power of Spring 5.0, Java SE 9, and Spring Boot 2.0.
Find out how to implement the REST architecture to build resilient software in Java with the help of the Spring 5.0 framework. About This Book Follow best practices and explore techniques such as clustering and caching to achieve a reactive, scalable web service, Leverage the Spring Framework to qui...
Otros Autores: | , |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Birmingham, England :
Packt Publishing
2018.
|
Edición: | Second edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630240506719 |
Tabla de Contenidos:
- Cover
- Title Page
- Copyright and Credits
- Packt Upsell
- Contributors
- Table of Contents
- Preface
- Chapter 1: 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
- Chapter 2: 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
- Chapter 3: 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
- Chapter 4: 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.
- Chapter 5: 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
- Chapter 6: 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
- Chapter 7: 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
- Chapter 8: 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
- Chapter 9: 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
- Chapter 10: Building a REST Client and Error Handling
- Building a REST client
- RestTemplate
- Error handling
- Customized exception
- Summary
- Chapter 11: 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
- Chapter 12: 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
- Chapter 13: 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
- Index.