Linked e-resources
Details
Table of Contents
Intro
Table of Contents
About the Authors
About the Technical Reviewer
Acknowledgments
Introduction
Chapter 1: Introduction to REST
What Is REST?
Understanding Resources
Identifying Resources
URI Templates
Representation
HTTP Methods
Safety
Idempotency
GET
HEAD
DELETE
PUT
POST
PATCH
HTTP Status Codes
Richardson's Maturity Model
Level Zero
Level One
Level Two
Level Three
Building a RESTful API
Summary
Chapter 2: Spring Web MVC Primer
Spring Overview
Dependency Injection
Aspect-Oriented Programming
Spring Web MVC Overview
Model View Controller Pattern
Spring Web MVC Architecture
Spring Web MVC Components
Controller
Model
View
@RequestParam
@RequestMapping
@RequestMapping Shortcut Annotations
Path Variables
View Resolver
Exception Handler
Interceptors
Summary
Chapter 3: RESTful Spring
Generating a Spring Boot Project
Installing a Build Tool
Generating a Project Using start.spring.io
Generating a Project Using STS
Generating a Project Using the CLI
Accessing REST Applications
Postman
RESTClient
Summary
Chapter 4: Beginning QuickPoll Application
Introducing QuickPoll
Designing QuickPoll
Resource Identification
Resource Representation
Endpoint Identification
Action Identification
QuickPoll Architecture
Implementing QuickPoll
Domain Implementation
Repository Implementation
Embedded Database
API Implementation
PollController Implementation
VoteController Implementation
ComputeResultController Implementation
Summary
Chapter 5: Error Handling
QuickPoll Error Handling
Error Responses
Input Field Validation
Externalizing Error Messages
Improving RestExceptionHandler
Summary
Chapter 6: Documenting REST Services
Swagger
Integrating Swagger
Swagger UI
Customizing Swagger
Configuring Controllers
Summary
Chapter 7: Versioning, Paging, and Sor ting
Versioning
Versioning Approaches
URI Versioning
URI Parameter Versioning
Accept Header Versioning
Custom Header Versioning
Deprecating an API
QuickPoll Versioning
SwaggerConfig
Pagination
Page Number Pagination
Limit Offset Pagination
Cursor-Based Pagination
Time-Based Pagination
Pagination Data
QuickPoll Pagination
Changing Default Page Size
Sor ting
Sort Ascending or Sort Descending
QuickPoll Sorting
Summary
Chapter 8: Security
Securing REST Services
Session-Based Security
HTTP Basic Authentication
Digest Authentication
Certificate-Based Security
XAuth
OAuth 2.0
OAuth Client Profiles
Refresh Tokens versus Access Tokens
Spring Security Overview
Securing QuickPoll
cURL
User Infrastructure Setup
UserDetailsService Implementation
Customizing Spring Security
Securing URI
Summary
Chapter 9: Clients and Testing
QuickPoll Java Client
Table of Contents
About the Authors
About the Technical Reviewer
Acknowledgments
Introduction
Chapter 1: Introduction to REST
What Is REST?
Understanding Resources
Identifying Resources
URI Templates
Representation
HTTP Methods
Safety
Idempotency
GET
HEAD
DELETE
PUT
POST
PATCH
HTTP Status Codes
Richardson's Maturity Model
Level Zero
Level One
Level Two
Level Three
Building a RESTful API
Summary
Chapter 2: Spring Web MVC Primer
Spring Overview
Dependency Injection
Aspect-Oriented Programming
Spring Web MVC Overview
Model View Controller Pattern
Spring Web MVC Architecture
Spring Web MVC Components
Controller
Model
View
@RequestParam
@RequestMapping
@RequestMapping Shortcut Annotations
Path Variables
View Resolver
Exception Handler
Interceptors
Summary
Chapter 3: RESTful Spring
Generating a Spring Boot Project
Installing a Build Tool
Generating a Project Using start.spring.io
Generating a Project Using STS
Generating a Project Using the CLI
Accessing REST Applications
Postman
RESTClient
Summary
Chapter 4: Beginning QuickPoll Application
Introducing QuickPoll
Designing QuickPoll
Resource Identification
Resource Representation
Endpoint Identification
Action Identification
QuickPoll Architecture
Implementing QuickPoll
Domain Implementation
Repository Implementation
Embedded Database
API Implementation
PollController Implementation
VoteController Implementation
ComputeResultController Implementation
Summary
Chapter 5: Error Handling
QuickPoll Error Handling
Error Responses
Input Field Validation
Externalizing Error Messages
Improving RestExceptionHandler
Summary
Chapter 6: Documenting REST Services
Swagger
Integrating Swagger
Swagger UI
Customizing Swagger
Configuring Controllers
Summary
Chapter 7: Versioning, Paging, and Sor ting
Versioning
Versioning Approaches
URI Versioning
URI Parameter Versioning
Accept Header Versioning
Custom Header Versioning
Deprecating an API
QuickPoll Versioning
SwaggerConfig
Pagination
Page Number Pagination
Limit Offset Pagination
Cursor-Based Pagination
Time-Based Pagination
Pagination Data
QuickPoll Pagination
Changing Default Page Size
Sor ting
Sort Ascending or Sort Descending
QuickPoll Sorting
Summary
Chapter 8: Security
Securing REST Services
Session-Based Security
HTTP Basic Authentication
Digest Authentication
Certificate-Based Security
XAuth
OAuth 2.0
OAuth Client Profiles
Refresh Tokens versus Access Tokens
Spring Security Overview
Securing QuickPoll
cURL
User Infrastructure Setup
UserDetailsService Implementation
Customizing Spring Security
Securing URI
Summary
Chapter 9: Clients and Testing
QuickPoll Java Client