Index
A
- Aerospike
- URL / Application-tier caching
- Apache ActiveMQ
- Apache Maven
- about / Apache Maven
- URL / Apache Maven
- dependency management / Dependency management in Apache Maven
- Central Repository, URL / Dependency management in Apache Maven
- API evolutions
- about / API evolutions
- HATEOAS / HATEOAS
- versioning strategies / Versioning strategies
- API response format
- about / The API response format
- envelope format / The envelope format
- JSON Responses, customizing / Customizing JSON responses
- application-tier caching
- Memcached / Application-tier caching
- Redis / Application-tier caching
- Hazelcast / Application-tier caching
- Ehache / Application-tier caching
- Riak / Application-tier caching
- Aerospike / Application-tier caching
- architecture, RESTful web service
- about / Architecture
- Inventory Service / Architecture
- Availability Service / Architecture
- Booking Service / Architecture
- Billing Service / Architecture
- asynchronous communication
- about / Asynchronous communication
- database polling / Asynchronous communication
- Message Oriented Middleware (MOM) / Asynchronous communication
- asynchronous RESTful API / Asynchronous communication
- authentication
- about / Authentication
- HTTP Basic authentication / HTTP Basic authentication
- HTTP Digest authentication / HTTP Digest authentication
- token-based authentication / Token-based authentication
- methods / Other authentication methods
- OAuth2 / Other authentication methods
- JWT / Other authentication methods
- authorization
- about / Authorization
- Spring, using / Authorization with Spring
- authorization, with Spring
- URL mapping / URL mapping
- resource annotations / Resource annotations
B
- Base64 / HTTP Basic authentication
- Bcrypt encryption
- BIG-IP
- URL / Load balancing
- booking service
- about / The booking service
- REST resource / The REST resource
C
- Cache-Control
- about / Cache-Control
- private/public caching / Private/Public caching
- no caching / No caching
- ETags / ETags
- Last-Modified/If-Modified-Since headers / Last-Modified/If-Modified-Since headers
- clustered systems, benefits
- fault tolerance / The benefits of clustered systems
- High Availability / The benefits of clustered systems
- clustering
- about / Clustering
- scaling up, versus scaling out / Scaling up versus scaling out
- clustered systems, benefits / The benefits of clustered systems
- load balancing / Load balancing
- linear scalability / Linear scalability
- CONNECT method / Mapping CRUD operations to HTTP methods
- CRUD operations
- mapping, to HTTP methods / Mapping CRUD operations to HTTP methods
D
- <dependencies> element
- Hibernate / Dependency management in Apache Maven
- JUnit / Dependency management in Apache Maven
- data-tier caching
- about / Data-tier caching
- first-level caching / First-level caching
- second-level caching / Second-level caching
- Data-Transfer-Object design pattern
- data model
- about / Data model
- room / Data model
- RoomCategory / Data model
- pricing / Data model
- booking / Data model
- invoice / Data model
- data representation
- Data Transfer Object (DTO) pattern / REST and the MVC pattern
- deflate format / Content negotiation
- DELETE method / Mapping CRUD operations to HTTP methods
- distributed caching
- about / Distributed caching
- data-tier caching / Data-tier caching
- application-tier caching / Application-tier caching
E
- EasyMock
- Ehache
- URL / Application-tier caching
- Ehcache
- URL / Second-level caching
- encryption
- about / Encryption
- sensitive data, storing / Storing sensitive data
- envelope format
- about / The envelope format
- error management / Error management
- pagination support / Pagination support
- ETags / ETags
- exception handling / Exception handling
G
- GET method / Mapping CRUD operations to HTTP methods
- Gradle
- about / Gradle
- URL / Gradle
- dependency management / Dependency management in Gradle
- Groovy-based declarative syntax / Gradle
- GZIP compression, in RESTful web services
- about / gzip compression in RESTful web services
- Spring Boot / Spring Boot
- gzip format / Content negotiation
H
- H2
- URL / Data model
- HAProxy
- URL / Load balancing
- Hazelcast
- URL / Application-tier caching
- HEAD method / Mapping CRUD operations to HTTP methods
- Hibernate / Data-tier caching
- Hibernate.org
- URL / Data model
- HTTP Basic authentication
- about / HTTP Basic authentication
- using, with Spring / Using Basic authentication with Spring
- HTTP caching
- about / HTTP caching
- Cache-Control directives / Cache-Control
- HttpClient
- HTTP compression
- about / HTTP compression
- content negotiation / Content negotiation
- gzip data format / gzip or deflate?
- deflate format / gzip or deflate?
- GZIP compression, in RESTful web services / gzip compression in RESTful web services
- HTTP Digest authentication
- about / HTTP Digest authentication
- URL / HTTP Digest authentication
- HTTP method mapping / HTTP method mapping
- HTTP methods
- CRUD operations, mapping to / Mapping CRUD operations to HTTP methods
- OPTIONS / Mapping CRUD operations to HTTP methods
- GET / Mapping CRUD operations to HTTP methods
- HEAD / Mapping CRUD operations to HTTP methods
- POST / Mapping CRUD operations to HTTP methods
- PUT / Mapping CRUD operations to HTTP methods
- DELETE / Mapping CRUD operations to HTTP methods
- TRACE / Mapping CRUD operations to HTTP methods
- CONNECT / Mapping CRUD operations to HTTP methods
- overriding / Overriding the HTTP method
- HTTP public key pinning (HPKP)
- about / HTTP public key pinning
- URL / HTTP public key pinning
- HTTPS / Encryption
- Hypermedia as the Engine of Application State (HATEOAS) / Uniform interface, API evolutions
I
- IDEs / Working with your favorite IDE
- input validation
- about / Input validation
- Java Bean annotations / Java Bean annotations
- integration testing
- about / Integration testing
- continuous delivery / Continuous delivery
- using, with Spring Boot / Integration tests with Spring Boot
- Postman / Postman
- IntelliJ IDEA / Working with your favorite IDE
- Inventory service
- about / The Inventory service
- running / Running the service
- ISO 8601 format
- URL / The REST resource
J
- Java Bean annotations
- about / Java Bean annotations
- regular expressions / Regular expressions
- bookings, validating / Validating bookings
- Javadoc
- Java new stream API
- Java Persistence API (JPA)
- about / The Inventory service
- URL / The Inventory service
- JBoss Cache
- URL / Second-level caching
- jMock
- JSON
- XML / Uniform interface
- Junit
- JWT
- about / Other authentication methods
- URL / Other authentication methods
L
- load testing / Load testing
M
- Maven modules
- common / The structure of our sample web service
- inventory / The structure of our sample web service
- availability / The structure of our sample web service
- booking / The structure of our sample web service
- billing / The structure of our sample web service
- all / The structure of our sample web service
- URL / The structure of our sample web service
- MD5 hash / HTTP Digest authentication
- Memcached
- URL / Application-tier caching
- Microservice architectures
- mocking
- about / Mocking
- simple mocking / Simple mocking
- mocking library
- implementation stubbing / Implementation stubbing with a mocking library
- Mockito
- about / Implementation stubbing with a mocking library
- using, with Spring / Mockito and Spring
- URL / Mockito and Spring
- Model View Controller pattern
- about / REST and the MVC pattern
- and REST / REST and the MVC pattern
- request mapping / Request mapping
- path mapping / Path mapping
- HTTP method mapping / HTTP method mapping
- request parameter mapping / Request parameter mapping
O
- OAuth2
- about / Other authentication methods
- URL / Other authentication methods
- Object-Relational Mapping (ORM) / Data model
- OPTIONS method / Mapping CRUD operations to HTTP methods
- OSCache
- URL / Second-level caching
P
- path mapping / Path mapping
- Postman
- URL / Postman
- about / Postman
- security / Postman and security
- POST method / Mapping CRUD operations to HTTP methods
- Pragma header / No caching
- Project Object Model (POM) / Apache Maven
- PUT method / Mapping CRUD operations to HTTP methods
R
- RabbitMQ
- Redis
- URL / Application-tier caching
- remote, versus local clients
- about / Remote versus local clients
- availability service / Availability and booking services
- booking service / Availability and booking services
- request mapping / Request mapping
- request parameter mapping / Request parameter mapping
- resources
- creating / Creating resources
- endpoints, testing / Quickly testing endpoints
- JSON, versus form data / JSON versus form data
- updating / Updating resources
- endpoint, updating / The update endpoint
- update requests, testing / Testing update requests
- deleting / Deleting resources
- REST
- about / REST principles
- principles / REST principles
- XML / Uniform interface
- and Model View Controller pattern / REST and the MVC pattern
- REST Client
- setup / The basic setup
- REST Client setup
- about / The basic setup
- client, declaring / Declaring a client
- RESTful API / Our RESTful web service
- RESTful web service
- about / Our RESTful web service
- architecture / Architecture
- data model / Data model
- RESTful web services
- developing / Developing RESTful web services
- favorite IDE, working from / Working with your favorite IDE
- making executable / Making services executable
- starting, with Maven / Starting services with Maven
- REST principles
- about / REST principles
- uniform interface / Uniform interface
- client/server model / Client-Server
- stateless / Stateless
- cacheable / Cacheable
- layered system / Layered system
- code on demand / Code on demand
- and Spring Framework / The Spring Framework and REST
- Riak
- URL / Application-tier caching
- room availability service
- about / Room availability
- implementation overview / An overview of implementation
- REST resource / The REST resource
- HTTP caching, adding / Adding HTTP caching
- caching, with ETags / Caching with ETags
- RoomController / REST and the MVC pattern
S
- sample web service
- structure / The structure of our sample web service
- Service Module, anatomy / The anatomy of a Service Module
- second-level caching
- about / Second-level caching
- Ehcache / Second-level caching
- OSCache / Second-level caching
- JBoss Cache / Second-level caching
- security
- testing / Testing security
- handling / Handling security
- security, handling
- Basic authentication / The Basic authentication
- Digest authentication / The Digest authentication
- HTTP public key pinning (HPKP) / HTTP public key pinning
- Service Level Agreements (SLAs) / Load testing
- Service Module
- anatomy / The anatomy of a Service Module
- local, versus remote service invocations / Local versus Remote Service Invocations
- Spring
- used, for authorization / Authorization with Spring
- using,with Mockito / Mockito and Spring
- Spring Boot
- URL / Making services executable
- using, with integration testing / Integration tests with Spring Boot
- Spring controllers
- unit testing / Unit testing Spring controllers
- Spring Framework
- about / The Spring Framework and REST
- and REST principles / The Spring Framework and REST
- Spring Web MVC
- Subject Public Key Information (SPKI) / HTTP public key pinning
T
- testing
- types / Other forms of testing
- User Acceptance Testing (UAT) / User Acceptance Testing
- load testing / Load testing
- token-based authentication
- about / Token-based authentication
- Tomcat instance / Running the service
- TRACE method / Mapping CRUD operations to HTTP methods
- Trust on First Use security technique / HTTP public key pinning
U
- Uniform Resource Identifiers (URIs) / Uniform interface
- UNIX times
- URL / The REST resource
- URI / Mapping CRUD operations to HTTP methods
- User Acceptance Testing (UAT) / User Acceptance Testing
V
- Value-Object design pattern / The Data-Transfer-Object design pattern
- versioning strategies
- about / Versioning strategies
- URI versioning / URI versioning
- representation versioning / Representation versioning
- other approaches / Other approaches