1. Preface
1. Who this book is for
2. What this book covers
3. To get the most out of this book
1. Download the example code files
2. Conventions used
4. Get in touch
1. Reviews
1. Introduction to the Basics of RESTful Architecture
1. Technical requirements
2. Evolution of web technologies
3. Learning about Web 3.0
1. Learning about web service architecture
2. Discussing the web API
3. Learning about service-oriented architecture
4. Learning about resource-oriented architecture
1. Resource-oriented design
2. The benefits of ROA
5. Beginning with REST
6. REST architecture style constraints
1. Beginning with client-server
1. The client in client-server architecture
2. The service in client-server architecture
2. Understanding statelessness
1. Advantages and disadvantages of statelessness
3. Caching constraint in REST
1. Benefits of caching
4. Understanding the uniform interface
1. Identification of resources
2. Manipulation of resources
3. Self-descriptive messages
4. Hypermedia as the Engine of Application State
7. Layered systems
1. Code on demand
8. RESTful service mandates
9. Architectural goals of REST
4. Summary
2. Design Strategy, Guidelines, and Best Practices
1. Technical requirements
2. Learning about REST API and its importance
3. Goals of RESTful API design
, 1. Affordance
2. Loosely coupled
3. Leverage web architecture
4. API designer roles and responsibilities
5. API design best practices
6. API design principles
1. Ubiquitous web standards
2. Flexibility
3. Granularity
4. Optimized APIs
5. Functionality
6. Learning about unusual circumstances
7. Community standardization
8. API playgrounds
7. RESTful API design rules
1. Learning about Uniform Resource Identifiers
1. URI formats
2. REST API URI authority
3. Resource modelling
4. Resource archetypes
5. URI path
6. URI query
7. HTTP interactions
1. Request methods
2. Response status codes
8. Metadata design
1. HTTP headers
9. Media types and media type design rules
10. Representations
1. Message body format
2. Hypermedia representation
3. Media type representation
4. Errors representation
11. Client concerns
1. Versioning
2. Security
3. Response representation composition
4. Processing hypermedia
5. JavaScript clients
8. Summary
9. Further reading
3. Essential RESTful API Patterns
1. Technical requirements
2. Beginning with the installations
3. Beginning with RESTful API patterns – part I
, 1. Statelessness
2. Content negotiation
1. Content negotiation with HTTP headers
3. URI templates
4. Design for intent
5. Pagination
6. Discoverability
7. Error and exception logging
8. Unicode
4. Summary
4. Advanced RESTful API Patterns
1. Technical requirements
2. RESTful API advanced patterns
1. Versioning
1. Versioning through the URI path
2. Versioning through query parameters
3. Versioning through custom headers
4. Versioning through content-negotiation
2. Authorization
1. Authorization with the default key
2. Authorization with credentials
3. Uniform contract
4. Entity endpoints
5. Endpoint redirection
6. Idempotent
7. Bulk operation
8. Circuit breaker
1. Combining the circuit pattern and the retry pattern
9. API facade
10. Backend for frontend
3. Summary
4. Further reading
5. Microservice API Gateways
1. Technical requirements
2. About microservice architecture
3. The prominent infrastructure modules in microservice-centric applications
1. Service registry
2. Service discovery
3. Composition/orchestration
4. Transformation
5. Monitoring
6. Load balancing and scaling
7. High availability and failover
8. HA and failover guidelines