3 options
RESTful java web services : a pragmatic guide to designing and building RESTful APIs using Java / Bogunuva Mohanram Balachandar.
- Format:
- Book
- Author/Creator:
- Balachandar, Bogunuva Mohanram, author.
- Language:
- English
- Subjects (All):
- Web site development--Computer programs.
- Web site development.
- Physical Description:
- 1 online resource (1 volume) : illustrations
- Edition:
- Third edition.
- Place of Publication:
- Birmingham, England : Packt Publishing, 2017.
- System Details:
- text file
- Biography/History:
- Bogunuva Mohanram Balachandar: Bogunuva Mohanram Balachandar works as associate director for a leading American multinational corporation, listed in NASDAQ-100 that provides digital, technology, consulting, and operations services. He has extensive experience in the design and development of multiple enterprise application integration projects, using various tools and technologies such as Oracle SOA Suite, Oracle Service Bus, Oracle AIA, IBM WebSphere Process Server, web services, RESTful services, Business Process Execution Language (BPEL), IBM WebSphere MQ, TIBCO EMS, Java, JMS, and Spring Integration. He is certified in SOA, web services, and cloud technologies and has over 16 years of IT industry experience in software design and development. Prior to joining his current employer, he worked with IBM, Accenture, and Wipro.
- Summary:
- 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 develop...
- Contents:
- Intro
- Title Page
- Copyright
- Credits
- About the Author
- Acknowledgments
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Table of Contents
- Preface
- Chapter 1: 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
- Chapter 2: 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 parameterized Java collection from the JSON representation
- 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
- Chapter 3: 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
- Chapter 4: 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
- Chapter 5: 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
- Chapter 6: 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
- Chapter 7: Description and Discovery of RESTful Web Services
- The need for an interface contract
- Web Application Description Language.
- Overview of the WADL structure.
- Notes:
- Includes index.
- Description based on online resource; title from PDF title page (EBC, viewed December 15, 2017).
- OCLC:
- 1017754230
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.