JBoss.orgCommunity Documentation

RESTEasy

Jakarta RESTFul Web Services

6.0.3.Final


Preface
1. Overview
2. License
3. Installation/Configuration
3.1. RESTEasy modules in WildFly
3.1.1. Other RESTEasy modules
3.1.2. Upgrading RESTEasy within WildFly
3.2. Deploying a RESTEasy application to WildFly
3.3. Deploying to other servlet containers
3.3.1. Servlet 3.0 containers
3.3.2. Older servlet containers
3.4. Configuration
3.4.1. RESTEasy with MicroProfile Config
3.4.2. Using pure MicroProfile Config
3.4.3. Using RESTEasy's extension of MicroProfile Config
3.4.4. Configuring MicroProfile Config
3.4.5. RESTEasy's classic configuration mechanism
3.4.6. Overriding RESTEasy's configuration mechanism
3.5. Configuration switches
3.6. jakarta.ws.rs.core.Application
3.7. RESTEasy as a ServletContextListener
3.8. RESTEasy as a Servlet Filter
3.9. Client side
4. Using @Path and @GET, @POST, etc.
4.1. @Path and regular expression mappings
5. @PathParam
5.1. Advanced @PathParam and Regular Expressions
5.2. @PathParam and PathSegment
6. @QueryParam
7. @HeaderParam
7.1. HeaderDelegates
8. Linking resources
8.1. Link Headers
8.2. Atom links in the resource representations
8.2.1. Configuration
8.2.2. Your first links injected
8.2.3. Customising how the Atom links are serialised
8.2.4. Specifying which Jakarta RESTful Web Services methods are tied to which resources
8.2.5. Specifying path parameter values for URI templates
8.2.6. Securing entities
8.2.7. Extending the UEL context
8.2.8. Resource facades
9. @MatrixParam
10. @CookieParam
11. @FormParam
12. @Form
13. Improved @…Param annotations
14. Optional parameter types
15. @DefaultValue
16. @Encoded and encoding
17. @Context
18. Jakarta RESTful Web Services Resource Locators and Sub Resources
19. Resources metadata configuration
20. Jakarta RESTful Web Services Content Negotiation
20.1. URL-based negotiation
20.2. Query String Parameter-based negotiation
21. Content Marshalling/Providers
21.1. Default Providers and default Jakarta RESTful Web Services Content Marshalling
21.2. Content Marshalling with @Provider classes
21.3. Providers Utility Class
21.4. Configuring Document Marshalling
21.5. Text media types and character sets
22. Jakarta XML Binding providers
22.1. Jakarta XML Binding Decorators
22.2. Pluggable JAXBContext's with ContextResolvers
22.3. Jakarta XML Binding + XML provider
22.3.1. @XmlHeader and @Stylesheet
22.4. Jakarta XML Binding + JSON provider
22.5. Jakarta XML Binding + FastinfoSet provider
22.6. Arrays and Collections of Jakarta XML Binding Objects
22.6.1. Retrieving Collections on the client side
22.6.2. JSON and Jakarta XML Binding Collections/arrays
22.7. Maps of XML Objects
22.7.1. Retrieving Maps on the client side
22.7.2. JSON and XML maps
22.8. Interfaces, Abstract Classes, and Jakarta XML Binding
22.9. Configuring Jakarta XML Binding Marshalling
23. RESTEasy Atom Support
23.1. RESTEasy Atom API and Provider
23.2. Using Jakarta XML Binding with the Atom Provider
24. JSON Support via Jackson
24.1. Using Jackson 2 Outside of WildFly
24.2. Using Jackson 2 Inside WildFly 9 and above
24.3. Additional RESTEasy Specifics
24.4. JSONP Support
24.5. Jackson JSON Decorator
24.6. JSON Filter Support
24.7. Polymorphic Typing deserialization
25. JSON Support via Jakarta EE JSON-P API
26. Multipart Providers
26.1. Multipart/mixed
26.1.1. Writing multipart/mixed messages
26.1.2. Reading multipart/mixed messages
26.1.3. Simple multipart/mixed message example
26.1.4. Multipart/mixed message with GenericType example
26.1.5. java.util.List with multipart/mixed data example
26.2. Multipart/related
26.2.1. Writing multipart/related messages
26.2.2. Reading multipart/related messages
26.2.3. Multipart/related message example
26.2.4. XML-binary Optimized Packaging (XOP)
26.2.5. @XopWithMultipartRelated return object example
26.2.6. @XopWithMultipartRelated input parameter example
26.3. Multipart/form-data
26.3.1. Writing multipart/form-data messages
26.3.2. Reading multipart/form-data messages
26.3.3. Simple multipart/form-data message example
26.3.4. java.util.Map with multipart/form-data
26.3.5. Multipart/form-data java.util.Map as method return type
26.3.6. @MultipartForm and POJOs
26.4. Note about multipart parsing and working with other frameworks
26.5. Overwriting the default fallback content type for multipart messages
26.6. Overwriting the content type for multipart messages
26.7. Overwriting the default fallback charset for multipart messages
27. Jakarta RESTful Web Services 2.1 Additions
27.1. CompletionStage support
27.2. Reactive Clients API
27.3. Server-Sent Events (SSE)
27.3.1. SSE Server
27.3.2. SSE Broadcasting
27.3.3. SSE Client
27.4. Java API for JSON Binding
27.5. JSON Patch and JSON Merge Patch
28. String marshalling for String based @*Param
28.1. Simple conversion
28.2. ParamConverter
28.3. StringParameterUnmarshaller
28.4. Collections
28.4.1. @QueryParam
28.4.2. @MatrixParam
28.4.3. @HeaderParam
28.4.4. @CookieParam
28.4.5. @PathParam
28.5. Extension to ParamConverter semantics
28.6. Default multiple valued ParamConverter
29. Responses using jakarta.ws.rs.core.Response
30. Exception Handling
30.1. Exception Mappers
30.2. RESTEasy Built-in Internally-Thrown Exceptions
30.3. Resteasy WebApplicationExceptions
30.4. Overriding RESTEasy Builtin Exceptions
31. Configuring Individual Jakarta RESTful Web Services Resource Beans
32. Content encoding
32.1. GZIP Compression/Decompression
32.1.1. Configuring GZIP compression / decompression
32.2. General content encoding
33. CORS
34. Content-Range Support
35. RESTEasy Caching Features
35.1. @Cache and @NoCache Annotations
35.2. Client "Browser" Cache
35.3. Local Server-Side Response Cache
35.4. HTTP preconditions
36. Filters and Interceptors
36.1. Server Side Filters
36.1.1. Asynchronous filters
36.2. Client Side Filters
36.3. Reader and Writer Interceptors
36.4. Per Resource Method Filters and Interceptors
36.5. Ordering
37. Asynchronous HTTP Request Processing
37.1. Using the @Suspended annotation
37.2. Using Reactive return types
37.3. Asynchronous filters
37.4. Asynchronous IO
38. Asynchronous Job Service
38.1. Using Async Jobs
38.2. Oneway: Fire and Forget
38.3. Setup and Configuration
39. Asynchronous Injection
39.1. org.jboss.resteasy.spi.ContextInjector Interface
39.2. Single<Foo> Example
39.3. Async Injector With Annotations Example
40. Reactive programming support
40.1. CompletionStage
40.2. CompletionStage in Jakarta RESTful Web Services
40.3. Beyond CompletionStage
40.4. Pluggable reactive types: RxJava 2 in RESTEasy
40.5. Proxies
40.6. Adding extensions
41. Embedded Containers
41.1. Undertow
41.2. Sun JDK HTTP Server
41.3. Netty
41.4. Reactor-Netty
41.5. Vert.x
41.6. EmbeddedJaxrsServer
42. Server-side Mock Framework
43. Securing Jakarta RESTful Web Services and RESTEasy
44. JSON Web Signature and Encryption (JOSE-JWT)
44.1. JSON Web Signature (JWS)
44.2. JSON Web Encryption (JWE)
45. Doseta Digital Signature Framework
45.1. Maven settings
45.2. Signing API
45.2.1. @Signed annotation
45.3. Signature Verification API
45.3.1. Annotation-based verification
45.4. Managing Keys via a KeyRepository
45.4.1. Create a KeyStore
45.4.2. Configure Restreasy to use the KeyRepository
45.4.3. Using DNS to Discover Public Keys
46. Body Encryption and Signing via SMIME
46.1. Maven settings
46.2. Message Body Encryption
46.3. Message Body Signing
46.4. application/pkcs7-signature
47. Jakarta Enterprise Beans Integration
48. Spring Integration
48.1. Basic Integration
48.2. Customized Configuration
48.3. Spring MVC Integration
48.4. Undertow Embedded Spring Container
48.5. Processing Spring Web REST annotations in RESTEasy
48.6. Spring Boot starter
48.7. Upgrading in WildFly
49. CDI Integration
49.1. Using CDI beans as Jakarta RESTful Web Services components
49.2. Default scopes
49.3. Configuration within WildFly
49.4. Configuration with different distributions
50. RESTEasy Client API
50.1. Jakarta RESTful Web Services Client API
50.2. RESTEasy Proxy Framework
50.2.1. Abstract Responses
50.2.2. Response proxies
50.2.3. Giving client proxy an ad hoc URI
50.2.4. Sharing an interface between client and server
50.3. Apache HTTP Client 4.x and other backends
50.3.1. HTTP redirect
50.3.2. Configuring SSL
50.3.3. HTTP proxy
50.3.4. Apache HTTP Client 4.3 APIs
50.3.5. Asynchronous HTTP Request Processing
50.3.6. Jetty Client Engine
50.3.7. Vertx Client Engine
50.3.8. Reactor Netty Client Engine
51. MicroProfile Rest Client
51.1. Client proxies
51.2. Concepts imported from Jakarta RESTful Web Services
51.3. Beyond Jakarta RESTful Web Services and RESTEasy
52. AJAX Client
52.1. Generated JavaScript API
52.1.1. JavaScript API servlet
52.1.2. JavaScript API usage
52.1.3. Work with @Form
52.1.4. MIME types and unmarshalling.
52.1.5. MIME types and marshalling.
52.2. Using the JavaScript API to build AJAX queries
52.2.1. The REST object
52.2.2. The REST.Request class
52.3. Caching Features
53. RESTEasy WADL Support
53.1. RESTEasy WADL Support for Servlet Container(Deprecated)
53.2. RESTEasy WADL Support for Servlet Container(Updated)
53.3. RESTEasy WADL support for Sun JDK HTTP Server
53.4. RESTEasy WADL support for Netty Container
53.5. RESTEasy WADL Support for Undertow Container
54. RESTEasy Tracing Feature
54.1. Overview
54.2. Tracing Info Mode
54.3. Tracing Info Level
54.4. Basic Usages
54.5. Client Side Tracing Info
54.6. Json Formatted Response
54.7. List Of Tracing Events
54.8. Tracing Example
55. Validation
55.1. Violation reporting
55.2. Validation Service Providers
55.3. Validation Implementations
56. Internationalization and Localization
56.1. Internationalization
56.2. Localization
57. Maven and RESTEasy
58. Migration from older versions
58.1. Migration to RESTEasy 3.0 series
58.2. Migration to RESTEasy 3.1 series
58.3. Migration to RESTEasy 3.5+ series
58.4. Migration to RESTEasy 4 series
59. Books You Can Read