售 价:¥
9.8
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐

Title Page
Third Edition
Copyright
RESTful Java Web Services
Third Edition
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
Why subscribe?
Customer Feedback
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
Introducing the REST Architectural Style
The REST architectural style
Introducing HTTP
HTTP versions
Understanding the HTTP request-response model
Uniform resource identifier
Understating the HTTP request methods
Representing content types using HTTP header fields
HTTP status codes
The evolution of RESTful web services
The core architectural elements of a RESTful system
Data elements
Resources
URI
The representation of resources
Generic interaction semantics for REST resources
The HTTP GET method
The HTTP POST method
The HTTP PUT method
The HTTP DELETE method
Hypermedia as the Engine of Application State
Connectors
Components
The description and discovery of RESTful web services
Java tools and frameworks for building RESTful web services
Summary
Java APIs for JSON Processing
A brief overview of JSON
Understanding the JSON data syntax
Basic data types available with JSON
Sample JSON file representing employee objects
Processing JSON data
Using JSR 353 – Java API for processing JSON
Processing JSON with JSR 353 object model APIs
Generating the object model from the JSON representation
JSON value types
Generating the JSON representation from the object model
Processing JSON with JSR 353 streaming APIs
Using streaming APIs to parse JSON data
Using streaming APIs to generate JSON
Using the Jackson API for processing JSON
Processing JSON with Jackson tree model APIs
Using Jackson tree model APIs to query and update data
Processing JSON with Jackson data binding APIs
Simple Jackson data binding with generalized objects
Full Jackson data binding with specialized objects
Processing JSON with Jackson streaming APIs
Using Jackson streaming APIs to parse JSON data
Using Jackson streaming APIs to generate JSON
Using the Gson API for processing JSON
Processing JSON with object model APIs in Gson
Generating the object model from the JSON representation
Generating the parameterized Java collection from the JSON representation
Generating the JSON representation from the object model
Processing JSON with Gson streaming APIs
Reading JSON data with Gson streaming APIs
Writing JSON data with Gson streaming APIs
Java EE 8 enhancements for processing JSON
Using the JSR 374 – Java API for JSON Processing 1.1
Understanding the JSON Pointer
Processing JSON using JSON Pointer
Understanding the JSON Patch
Processing JSON using JSON Patch
Using the JSR 367 – Java API for JSON Binding
Processing JSON using JSON-B
Summary
Introducing the JAX-RS API
An overview of JAX-RS
JAX-RS annotations
Specifying the dependency of the JAX-RS API
Using JAX-RS annotations to build RESTful web services
Annotations for defining a RESTful resource
@Path
Annotations for specifying request-response media types
@Produces
@Consumes
Annotations for processing HTTP request methods
@GET
@PUT
@POST
@DELETE
@HEAD
@OPTIONS
Annotations for accessing request parameters
@PathParam
@QueryParam
@MatrixParam
@HeaderParam
@CookieParam
@FormParam
@DefaultValue
@Context
@BeanParam
@Encoded
Annotation inheritance
Returning additional metadata with responses
Understanding data binding rules in JAX-RS
Mapping the path variable with Java types
Mapping the request and response entity body with Java types
Using JAXB to manage the mapping of the request and response entity body to Java objects
Building your first RESTful web service with JAX-RS
Setting up the environment
Building a simple RESTful web service application using the NetBeans IDE
Adding CRUD operations on the REST resource class
Client APIs for accessing RESTful web services
Specifying a dependency of the JAX-RS client API
Calling REST APIs using the JAX-RS client
Simplified client APIs for accessing REST APIs
Summary
Advanced Features in the JAX-RS APIs
Understanding subresources and subresource locators in JAX-RS
Subresources in JAX-RS
Subresource locators in JAX-RS
Dynamic dispatching
Request matching
JAX-RS response builder explained
Exception handling in JAX-RS
Reporting errors using ResponseBuilder
Reporting errors using WebApplicationException
Reporting errors using application exceptions
Mapping exceptions to a response message using ExceptionMapper
Introducing validations in JAX-RS applications
A brief introduction to Bean Validation
Building custom validation constraints
What happens when Bean Validation fails in a JAX-RS application?
Supporting custom request-response message formats
Building custom entity provider
Marshaling Java objects to the CSV representation with MessageBodyWriter
Marshaling CSV representation to Java objects with MessageBodyReader
Asynchronous RESTful web services
Asynchronous RESTful web service client
Server-sent events
Managing an HTTP cache in a RESTful web service
Using the Expires header to control the validity of the HTTP cache
Using Cache-Control directives to manage the HTTP cache
Conditional request processing with the Last-Modified HTTP response header
Conditional request processing with the ETag HTTP response header
Conditional data update in RESTful web services
Understanding filters and interceptors in JAX-RS
Modifying request and response parameters with JAX-RS filters
Implementing server-side request message filters
Postmatching server-side request message filters
Prematching server-side request message filters
Implementing server-side response message filters
Implementing client-side request message filters
Implementing client-side response message filters
Modifying request and response message bodies with JAX-RS interceptors
Implementing request message body interceptors
Implementing response message body interceptors
Managing the order of execution for filters and interceptors
Selectively applying filters and interceptors on REST resources by using @NameBinding
Dynamically applying filters and interceptors on REST resources using DynamicFeature
Understanding the JAX-RS resource life cycle
Summary
Introducing JAX-RS Implementation Framework Extensions
Jersey framework extensions
Dynamically configuring JAX-RS resources during deployment
A quick look at the static resource configurations
Modifying JAX-RS resources during deployment using ModelProcessor
What is the Jersey model processor and how it works?
A brief look at the ModelProcessor interface
Building Hypermedia As The Engine Of Application State (HATEOAS) APIs
Programmatically building entity body links using JAX-RS APIs
Programmatically building header links using JAX-RS APIs
Declaratively building links using Jersey annotations
Specifying the dependency to use Jersey declarative linking
Enabling the Jersey declarative linking feature for the application
Declaratively adding links to the resource representation
Grouping multiple links using @InjectLinks
Declaratively building HTTP link headers using @InjectLinks
Reading and writing large binary objects using Jersey APIs
Building RESTful web services for storing images
Building RESTful web service for reading images
Generating a chunked output using Jersey APIs
Jersey client API for reading chunked input
Supporting server-sent events in RESTful web services
Understanding the Jersey server-side configuration properties
Monitoring RESTful web services using Jersey APIs
RESTEasy framework extensions
Caching using RESTEasy
Cache-control annotations
Client-side caching
GZIP compression/decompression
Multipart content handling
Summary
Securing RESTful Web Services
Securing and authenticating web services
HTTP basic authentication
Building JAX-RS clients with basic authentication
Securing JAX-RS services with basic authentication
Configuring the basic authentication
Defining groups and users in the GlassFish server
HTTP digest authentication
JWT authentication
JSON Web Token (JWT) overview
Using JWT to secure RESTful services
Securing RESTful web services with OAuth
Understanding the OAuth 1.0 protocol
Building the OAuth 1.0 client using Jersey APIs
Understanding the OAuth 2.0 protocol
Understanding the grant types in OAuth 2.0
Building the OAuth 2.0 client using Jersey APIs
Authorizing the RESTful web service accesses via the security APIs
Using SecurityContext APIs to control access
Using the javax.annotation.security annotations to control access
Using Jersey's role-based entity data filtering
Input validation
Key considerations for securing RESTful services
Summary
Description and Discovery of RESTful Web Services
The need for an interface contract
Web Application Description Language
Overview of the WADL structure
Generating WADL from JAX-RS
Generating a Java client from WADL
Market adoption of WADL
RESTful API Modeling Language
Overview of the RAML structure
Generating RAML from JAX-RS
Generating RAML from JAX-RS via CLI
Generating JAX-RS from RAML
Generating JAX-RS from RAML via CLI
A glance at the market adoption of RAML
Swagger
A quick overview of the Swagger structure
An overview of Swagger APIs
Generating Swagger from JAX-RS
Specifying dependency to Swagger
Configuring the Swagger definition
Adding a Swagger annotation on a JAX-RS resource class
Generating a Java client from Swagger
A glance at the market adoption of Swagger
Revisiting the features offered in WADL, RAML, and Swagger
Summary
RESTful API Design Guidelines
Designing RESTful web APIs
Identifying resources in a problem domain
Transforming operations to HTTP methods
Understanding the difference between PUT and POST
Naming RESTful web resources
Using HATEOAS in response representation
Hypertext Application Language
RFC 5988 - web linking
Fine-grained and coarse-grained resource APIs
Using header parameters for content negotiation
Multilingual RESTful web API resources
Representing date and time in RESTful web resources
Implementing partial response
Implementing partial update
Returning modified resources to the caller
Paging a resource collection
Implementing search and sort operations
Versioning RESTful web APIs
Including the version in the resource URI – URI versioning
Including the version in a custom HTTP request header – HTTP header versioning
Including the version in the HTTP Accept header – media type versioning
Hybrid approach for versioning APIs
Caching RESTful web API results
HTTP Cache-Control directive
HTTP conditional requests
Using HTTP status codes in RESTful web APIs
Overriding HTTP methods
Documenting RESTful web APIs
Asynchronous execution of RESTful web APIs
Microservice architecture style for RESTful web application
A quick recap
Summary
The Role of RESTful APIs in Emerging Technologies
Cloud services
Cloud characteristics
Cloud offering models
RESTful API Role in cloud services
Provisioning IT resources using RESTful APIs
Locating the REST API endpoint
Generating an authentication cookie
Provisioning a virtual machine instance
Internet of things
IoT platform
IoT benefits
RESTful API role in the IoT
Modern web applications
Single-page applications
RESTFul API role in single-page applications
Social media
Social media platforms
Social media benefits
RESTful API role in social media
Using Open Data Protocol with RESTful web APIs
A quick look at OData
URI convention for OData-based REST APIs
Reading resources
Querying data
Modifying data
Relationship operations
Summary
Useful Features and Techniques
Tools for building a JAX-RS application
Integration testing of JAX-RS resources with Arquillian
Adding Arquillian dependencies to the Maven-based project
Configuring the container for running the tests
Adding Arquillian test classes to the project
Running Arquillian tests
Using third-party entity provider frameworks with Jersey
Transforming the JPA model into OData-enabled RESTful web services
Packaging and deploying JAX-RS applications
Packaging JAX-RS applications with an Application subclass
Packaging the JAX-RS applications with web.xml and an Application subclass
Configuring web.xml for a servlet 2.x container
Configuring web.xml for a servlet 3.x container
Packaging the JAX-RS applications with web.xml and without an Application subclass
Configuring web.xml for the servlet 2.x container
Configuring web.xml for the servlet 3.x container
Summary
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜