rest-expanders
The rest-expanders bundle is a set of expanders capable of generating a Jersey-based JAX-RS implementation of a REST API. Documentation is provided in the form of Swagger (OpenAPI) files that are automatically generated.
Overview
The rest-expanders generates a REST API implementation based on industry standard practices. Though the HTTP protocol that carries REST is standardized and uniquely defined as described in RFC 7231 and amended with the PATCH
method described in RFC 5789, the REST payloads themselves are not. As such, a set of commonly used specifications and practices were adopted to provide a clean implementation.
The following specifications are used to generate a consistent and clean API which is self-documenting:
- The HAL (Hypertext Application Language) specification to return lists of resources, accompanied by navigation data and search metrics.
- The Problem Details specification to describe errors in a meaningful and consistent way.
- The OpenAPI (or Swagger) v3.0 specification for documenting RESTful APIs.
In additions to these specifications, the rest-expanders generate Swagger UI integration to provide a clean and visual interface to the API for developers and users of the application.
Expansion resources
The following expansion resources are available for use in applications:
net.democritus:rest-jaxrs-stack@4.36.1
: A complete stand-alone bundle which supplies all bundles above with all dependencies, including the correctnsx-default-stack
bundle. With this resource there's no need to add any of its dependencies to the application unless a specific version is needed.net.democritus:rest-expanders@4.29.0
: The main expander bundle, which expands the JAX-RS REST stack into the main NS application stack.net.democritus:rest-account-security-expanders@4.29.0
: An addon expander bundle for therest-expanders
bundle, which adds support for the access control features in theaccount
component of thebase-components
.net.democritus:rest-assets-expanders@4.29.0
: An addon expander bundle for therest-expanders
bundle, which supplies an implementation for file resources and upload/download endpoints with theassets
component of thebase-components
.