万本电子书0元读

万本电子书0元读

顶部广告

RESTful Java Web Services - Third Edition电子书

售       价:¥

2人正在读 | 0人评论 9.8

作       者:Bogunuva Mohanram Balachandar

出  版  社:Packt Publishing

出版时间:2017-11-17

字       数:55.7万

所属分类: 进口书 > 外文原版书 > 小说

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Master core REST concepts and create RESTful web services in Java About This Book Build efficient and secure RESTful web APIs in Java.. Design solutions to produce, consume and visualize RESTful web services using WADL, RAML, and Swagger Familiarize the role of RESTful APIs usage in emerging technology trends like Cloud, IoT, Social Media. Who This Book Is For If you are a web developer with a basic understanding of the REST concepts and envisage to get acquainted with the idea of designing and developing RESTful web services, this is the book for you. As all the code samples for the book are written in Java, proficiency in Java is a must. What You Will Learn Introduce yourself to the RESTful software architectural style and the REST API design principles Make use of the JSR 353 API, JSR 374 API, JSR 367 API and Jackson API for JSON processing Build portable RESTful web APIs, making use of the JAX-RS 2.1 API Simplify API development using the Jersey and RESTEasy extension APIs Secure your RESTful web services with various authentication and authorization mechanisms Get to grips with the various metadata solutions to describe, produce, and consume RESTful web services Understand the design and coding guidelines to build well-performing RESTful APIs See how the role of RESTful web services changes with emerging technologies and trends In Detail Representational State Transfer (REST) is a simple yet powerful software architecture style to create lightweight and scalable web services. The RESTful web services use HTTP as the transport protocol and can use any message formats, including XML, JSON(widely used), CSV, and many more, which makes it easily inter-operable across different languages and platforms. This successful book is currently in its 3rd edition and has been used by thousands of developers. It serves as an excellent guide for developing RESTful web services in Java. This book attempts to familiarize the reader with the concepts of REST. It is a pragmatic guide for designing and developing web services using Java APIs for real-life use cases following best practices and for learning to secure REST APIs using OAuth and JWT. Finally, you will learn the role of RESTful web services for future technological advances, be it cloud, IoT or social media. By the end of this book, you will be able to efficiently build robust, scalable, and secure RESTful web services using Java APIs. Style and approach Step-by-step guide to designing and developing robust RESTful web services. Each topic is explained in a simple and easy-to-understand manner with lots of real-life use-cases and their solutions.
目录展开

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

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部