Building RESTful Web Services with Spring 5 - Second Edition
图书信息
| 作者 | Raja CSP Raman,Ludovic Dewailly |
| 出版社 | Packt Publishing |
| ISBN | 9781788471879 |
| 出版时间 | 2018-01-29 |
| 字数 | 24.9万 |
| 分类 | Packt Publishing,进口书,外文原版书,电脑,网络 |
读书简介
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 quickly implement RESTful endpoints, ? Learn to implement a client library for a RESTful web service using the Spring Framework along with the new front end framework. Who This Book Is For This book is intended for those who want to learn to build RESTful web services with the latest Spring 5.0 Framework. To make best use of the code samples included in the book, you should have a basic knowledge of the Java language. Previous experience with the Spring Framework would also help you get up and running quickly. What You Will Learn ? Deep dive into the principles behind REST ? Expose CRUD operations through RESTful endpoints with the Spring Framework ? Devise response formats and error handling strategies, offering a consistent and flexible structure to simplify integration for service consumers ? Follow the best approaches for dealing with a service's evolution while maintaining backward compatibility ? Understand techniques to secure web services ? Comply with the best ways to test RESTful web services, including tips for load testing ? Optimise and scale web services using techniques such as caching and clustering In Detail REST is an architectural style that tackles the challenges of building scalable web services. In today's connected world, APIs have taken a central role on the web. APIs provide the fabric through which systems interact, and REST has become synonymous with APIs.The depth, breadth, and ease of use of Spring makes it one of the most attractive frameworks in the Java ecosystem. Marrying the two technologies is therefore a very natural choice.This book takes you through the design of RESTful web services and leverages the Spring Framework to implement these services. Starting from the basics of the philosophy behind REST, you'll go through the steps of designing and implementing an enterprise-grade RESTful web service. Taking a practical approach, each chapter provides code samples that you can apply to your own circumstances.This second edition brings forth the power of the latest Spring 5.0 release, working with MVC built-in as well as the front end framework. It then goes beyond the use of Spring to explores approaches to tackle resilience, security, and scalability concerns. Improve performance of your applications with the new HTTP 2.0 standards. You'll learn techniques to deal with security in Spring and discover how to implement unit and integration test strategies.Finally, the book ends by walking you through building a Java client for your RESTful web service, along with some scaling techniques using the new Spring Reactive libraries. Style and approach Readers will be taken through a set of specific patterns and tested practices to build effective RESTful systems in Java using the Spring framework.
目录
Title Page
Copyright and Credits
Building RESTful Web Services with Spring 5 Second Edition
Dedication
Packt Upsell
Why subscribe?
PacktPub.com
Contributors
About the authors
About the reviewer
Packt is searching for authors like you
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
- 502(暂无)
- 中国企业家成长30年:企业家精神引领企业迈向高质量发展(李兰)
- 有趣的语文:一个语文教师的“另类”行走(凌宗伟)
- 侯大利刑侦笔记8:旧案寻踪(集侦查学、痕迹学、社会学、尸体解剖学、犯罪心理学的教科书式破案小说)(读客知识小说文库)(小桥老树)
- 简单易学的基金投资(杨天南,孙振曦,贾泽亮 等)
- 谦逊的问讯:以询问开启良好关系的艺术(原书第2版)((美)埃德加·沙因,(美)彼得·沙因)
- 区块链编程((美)吉米·宋(Jimmy Song))
- 做事先做人(李元秀 主编)
