Package org.refcodes.rest
What is this package for?
With this artifact you easily create you RESTful servers and REST clients. Therefcodes-rest artifact lets you do it the
Bare-Metal way, or the syntactic sugar (see
client sugar or server sugar) way (meaning the use
of statically imported methods):
RESTful server
- Instantiate the RESTful server
- Register your lambda expressions
- Start the RESTful server
Java
based RESTful server. Below, you see the three steps with the
help of a little syntactic sugar:
// STEP 1: We use a singleton with syntactic sugar instead of instantiating a HttpRestServer:
import static org.refcodes.rest.HttpRestServerSugar.*;
...
public static void main( String[] args ) {
// STEP 2: Using syntactic sugar, we register our lambda expression:
onGet( "/say/${name}=*", ( aResponse ) -> {
String name = aResponse.getWildcardReplacement( "name" );
aResponse.getHeaderFields().withContentType( MediaType.APPLICATION_JSON ).withAddCookie( "greeting", "Hello " + name + "!" );
return "Hello " + name + "!" ;
} ).open();
// STEP 3: We open the HttpRestServer singleton on port 8080 using our syntactic sugar:
open( 8080 );
}
...
The
TinyRestfulServer demo application uses syntactic sugar for
setting up a RESTful server including command line arguments
parsing.
REST client
- Instantiate the REST client
- Register your lambda expressions
- Fire the client's REST request
Java based REST client. Below you see the three
steps with the help of a little syntactic sugar:
// STEP 1: We use a singleton with syntactic sugar instead of instantiating a HttpRestClient:
import static org.refcodes.rest.HttpRestClientSugar.*;
...
public static void main( String[] args ) {
// STEP 2: Using syntactic sugar, we define our caller, including the response listener:
doGet( "http://mydomain:8080/say", ( aResponse ) -> {
... = aResponse.getResponse( SomeType.class );
} ).withRequest( ... ).open();
// STEP 3: We opened the caller so it fires the request to port 8080 of domain "mydomain"
}
...
How do I get set up?
To get up and running, include the following dependency (without the three dots "...") in yourpom.xml:
<dependencies>
...
<dependency>
<artifactId>refcodes-rest</artifactId>
<groupId>org.refcodes</groupId>
<version>x.y.z</version>
</dependency>
...
</dependencies>
(please refer to Maven Central at
"http://search.maven.org/#search|ga|1|g%3A%22org.refcodes%22" for the most
current version)
If you want the framework to interoperate with SLF4J
(http://www.slf4j.org/) logging, you may instead add the following
dependencies to your pom.xml:
<dependencies>
...
<dependency>
<artifactId>refcodes-rest</artifactId>
<groupId>org.refcodes</groupId>
<version>x.y.z</version>
</dependency>
<dependency>
<groupId>org.refcodes</groupId>
<artifactId>refcodes-logger-alt-slf4j</artifactId>
<version>x.y.z</version>
</dependency>
...
</dependencies>
(please refer to Maven Central at
"http://search.maven.org/#search|ga|1|g%3A%22org.refcodes%22" for the most
current version)
The artifact is hosted directly at Maven Central (http://search.maven.org). Jump straight to the source codes at Bitbucket (https://bitbucket.org/refcodes/refcodes-rest). Read the artifact's javadoc at javadoc.io (http://www.javadoc.io/doc/org.refcodes/refcodes-rest).
How do I get started with the RESTful server?
Above you saw an example on how to setup your ownRESTful
service using syntactic sugar. One drawback of using
syntactic sugar is that we can only make use of the one
HttpRestServerSingleton (as of this
syntactic sugar being the statically imported methods),
preventing us from running multiple HttpRestServer
instances on different ports in one Java application.
Lets do it the Bare-Metal way, which is not very complicated
either, and which lets us instantiate as many
HttpRestServer instances as we want:
...
public static void main( String[] args ) {
// STEP 1: We instantiate our HttpRestServer:
HttpRestServer theRestServer = new HttpRestServerImpl();
// STEP 2: We register our lambda expression:
theRestServer.onGet( "/say/${name}=*", ( aResponse ) -> {
String name = aResponse.getWildcardReplacement( "name" );
aResponse.getHeaderFields().withContentType( MediaType.APPLICATION_JSON ).withAddCookie( "greeting", "Hello " + name + "!" );
return "Hello " + name + "!" ;
} ).open();
// STEP 3: We open the HttpRestServer instance on port 8080:
theRestServer.open( 8080 );
}
...
The Locator-Pattern
Did you notice the Locator-Pattern"/say/${name}=*" above when
registering your lambda? Subscribing your lambda
expressions for incoming REST requests on specific
locators, you may use a common wildcard syntax to
define the lambda's locator pattern:
- A single asterisk ("*") matches zero or more characters within a locator name.
- A double asterisk ("**") matches zero or more characters across directory levels.
- A question mark ("?") matches exactly one character within a locator name.
*), the double asterisk (**)
and the question mark (?) we refer to as wildcard:
You get an array with all the substitutes of the wildcards using
the method RestRequestEvent#getWildcardReplacements().
You may name a wildcard by prefixing it with
"${someWildcardName}=". For example a named
wildcard may look as follows: "${arg1}=*" or
"${arg2}=**" or "${arg3}=?" or as of the example
above "/say/${name}=*". When your "lambda" is being
invoked, you can retrieve the wildcard substitution by the name
of the wildcard which has been substituted (by parts of the
incoming locator). You can get the text substituting a named
wildcard using the method
RestRequestEvent#getWildcardReplacement(String).
The RESTful server's bits and pieces
RestServer: It acts as the target for clients issuing REST requests.RestEndpointBuilder) instances, most easily being created with the RestServer#subscribeObserver(HttpMethod, String, RestRequestObserver) or the like methods, are registered as listeners to theRestServer. TheRestServerfiresRestRequestEventevents to theRestRequestObservers of aRestEndpointdedicated to an according locator(pattern) for a specificHttpMethod.HttpRestServer: It extends aRestServerto be capable of opening a server socket on the local host with the provided port number via #open(Integer) or with an additional maximum number of connections via #open(Integer, int) . AHttpRestServercan be shutdown via #close().HttpRestServerImpl: Implementation of theHttpRestServerinterface using the HttpServer defined in the com.sun.net.httpserver artifact. TheHttpRestServercan also be implemented with other HTTP servers under the hood, use theAbstractRestServeras super class of your own implementation to easily do so.RestEndpoint: ARestEndpointsubscribes to aRestServer) and defines the target for a REST request. Therefore theRestEndpointdescribes theHttpMethod, the locator (pattern) to which to respond as well as aRestRequestObserverresponsible for processing the request. TheRestRequestObserveris invoked as soon as a request with the givenHttpMethodfor a locator matching the given Locator-Pattern is being processed by theRestServer).RestEndpointBuilder): ARestEndpointBuilder) extends aRestEndpointwith builder functionality and adds lambda support for handling the request addressed to thisRestEndpoint. The lambda defined asRestRequestObserveracts as the single listener to thisRestEndpointresponsible for handling the request for which thisRestEndpointis responsible.RestRequestObserver: It can be coded using the lambda syntax and processes a request on a given locator for a givenHttpMethod. TheRestRequestObserveris working with a context (theRestRequestEvent).HttpRestServerSugar: The syntactic sugar for setting up your RESTful service as quickly as possible ("import static org.refcodes.rest.HttpRestServerSugar.*;").
How do I get started with the REST client?
Above you saw an example on how to setup your ownREST client
using syntactic sugar. One drawback of using
syntactic sugar is that we can only make use of the one
HttpRestClientSingleton (as of this
syntactic sugar being the statically imported methods),
preventing us from running multiple HttpRestClient
instances in one Java application (which is actually no real
drawback, as the HttpRestClientSingleton can fire
at any HTTP or HTTPS targets you wish to connect to).
Lets do it the Bare-Metal way, which is not very complicated
either, and which lets us instantiate as many
HttpRestClient instances as we want:
...
public static void main( String[] args ) {
// STEP 1: We instantiate our HttpRestClient:
HttpRestClient theRestClient = new HttpRestClientImpl();
// STEP 2: We register our lambda expression:
theRestClient.doRequest( HttpMethod.POST, "http://mydomain:8080/say", ( aResponse ) -> {
String theResponse = aResponse.getResponse( String.class );
} ).withRequest( ... ).open();
// STEP 3: We opened the caller so it fires the request to port 8080 of domain "mydomain"
}
...
The REST client's bits and pieces
RestClient: It acts as the origin for clients issuing REST requests.RestCallerBuilderinstances, most easily being created with the RestClient#doRequest( HttpMethod , aLocator, aResponseObserver ) or the like methods, are registered as listeners to theRestClient's request, waiting for the response. TheRestClientfiresRestResponseEventevents to theRestResponseObserverof theRestCallerdedicated to the according request.HttpRestClient: It extends aRestClientto be capable of doing HTTP (HTTPS). AHttpRestClientcan be shutdown via #close().HttpRestClientImpl: Implementation of theHttpRestClientinterface using the HttpURLConnection (https://docs.oracle.com/javase/8/docs/api/java/net/HttpURLConnection.html) defined in the java.net package. TheHttpRestClientcan also be implemented with other HTTP connectors under the hood, use theAbstractRestClientas super class of your own implementation to easily do so.RestCaller: ARestCallersubscribes to aRestClient(HttpRestClient)'s request and defines the target for a REST request's response. Therefore theRestCallerdescribes theRestResponseObserverresponsible for processing the request's response. TheRestResponseObserveris invoked as soon as a response for the according request is being received by theRestClient(HttpRestClient).RestCallerBuilder: ARestCallerBuilderextends aRestCallerwith builder functionality and adds lambda support for handling the responses addressed to thisRestCaller. The lambda defined as RequestObserver acts as the single listener to thisRestCallerresponsible for handling the response for which thisRestCalleris responsible.RestResponseObserver: It can be coded using the lambda syntax and processes a request's response. TheRestResponseObserveris working with a context (theRestResponseEvent).HttpRestClientSugar: The syntactic sugar for setting up your REST client as quickly as possible ("import static org.refcodes.rest.HttpRestClientSugar.*;").
Examples
Please refer to the example code at "https://bitbucket.org/refcodes/refcodes-rest/src/master/src/test/java/org/refcodes/rest". Also see "https://bitbucket.org/refcodes/refcodes-rest/src/master/src/test/java/org/refcodes/rest"-
Interface Summary Interface Description BasicAuthEndpoint ABasicAuthEndpointsubscribes to aRestServer(HttpRestServer) and defines the target for a Basic-Auth request.BasicAuthEndpointBuilder ABasicAuthEndpointBuilderextends anBasicAuthEndpointwith builder functionality and addslambdasupport for handling the requests addressed to thisBasicAuthEndpoint.BasicAuthEvent Defines aBasicAuthEventbeing the request as consumed by aRestEndpoint.HomePathAccessor Provides an accessor for a home path property.HomePathAccessor.HomePathBuilder<B extends HomePathAccessor.HomePathBuilder<?>> Provides a mutator for an home path property.HomePathAccessor.HomePathMutator Provides a mutator for a home path property.HomePathAccessor.HomePathProperty Provides a home path property.HomeRequestObserver Mixin to register aRestRequestObserverupon "home" requests.HomeRequestObserverAccessor Provides an accessor for a homeRestRequestObserverproperty.HomeRequestObserverAccessor.HomeRequestObserverBuilder<B extends HomeRequestObserverAccessor.HomeRequestObserverBuilder<B>> Provides a builder method for a homeRestRequestObserverproperty returning the builder for applying multiple build operations.HomeRequestObserverAccessor.HomeRequestObserverMutator Provides a mutator for a homeRestRequestObserverproperty.HomeRequestObserverAccessor.HomeRequestObserverProperty Provides a homeRestRequestObserverproperty.HomeUrlAccessor Provides an accessor for a homeUrlproperty.HomeUrlAccessor.HomeUrlBuilder<B extends HomeUrlAccessor.HomeUrlBuilder<?>> Provides a mutator for an homeUrlproperty.HomeUrlAccessor.HomeUrlMutator Provides a mutator for a homeUrlproperty.HomeUrlAccessor.HomeUrlProperty Provides a homeUrlproperty.HttpDiscovery<B extends HttpDiscovery<B>> TheHttpDiscoverydescribes the functionality required in order to discover a service at a service discovery and discovery service.HttpDiscoveryContext This context describes all information required to register a server ("service") at a service discovery registry.HttpDiscoveryContext.HttpDiscoveryContextBuilder TheHttpDiscoveryContext.HttpDiscoveryContextBuilderinterface extends theHttpDiscoveryContextwith builder functionality as of the builder pattern.HttpDiscoveryRestClient<B extends HttpDiscoveryRestClient<B>> TheHttpDiscoveryRestClientprovides additional functionality for registering at and signing off from a service discovery service in order to resolve URLs to or from other services.HttpDiscoverySidecar<B extends HttpDiscoverySidecar<B>> TheHttpDiscoverySidecardescribes the functionality required in order to discover a service at a service discovery and discovery service.HttpDiscoveryUrlAccessor Provides an accessor for a service discovery discoveryUrlproperty.HttpDiscoveryUrlAccessor.HttpDiscoveryUrlBuilder<B extends HttpDiscoveryUrlAccessor.HttpDiscoveryUrlBuilder<B>> Provides a builder method for a service discovery discovery URL property returning the builder for applying multiple build operations.HttpDiscoveryUrlAccessor.HttpDiscoveryUrlMutator Provides a mutator for a service discovery discovery URL property.HttpDiscoveryUrlAccessor.HttpDiscoveryUrlProperty Provides a service discovery discovery URL property.HttpExceptionHandler A lambda "catch-all" for handling exceptions during HTTP-Request processing.HttpExceptionHandlerAccessor Provides access to aHttpExceptionHandlerproperty.HttpExceptionHandlerAccessor.HttpExceptionHandlerBuilder<B extends HttpExceptionHandlerAccessor.HttpExceptionHandlerBuilder<B>> Provides a builder method for aHttpExceptionHandlerproperty returning the builder for applying multiple build operations.HttpExceptionHandlerAccessor.HttpExceptionHandlerMutator Extends theHttpExceptionHandlerAccessorwith a setter method.HttpExceptionHandlerAccessor.HttpExceptionHandlerProperty Extends theHttpExceptionHandlerAccessorwith a setter method.HttpExceptionHandlingAccessor Provides access to aHttpExceptionHandlingproperty.HttpExceptionHandlingAccessor.HttpExceptionHandlingBuilder<B extends HttpExceptionHandlingAccessor.HttpExceptionHandlingBuilder<B>> Provides a builder method for aHttpExceptionHandlingproperty returning the builder for applying multiple build operations.HttpExceptionHandlingAccessor.HttpExceptionHandlingMutator Extends theHttpExceptionHandlingAccessorwith a setter method.HttpExceptionHandlingAccessor.HttpExceptionHandlingProperty Extends theHttpExceptionHandlingAccessorwith a setter method.HttpRegistry<DESC extends HttpServerDescriptor,B extends HttpRegistry<DESC,B>> TheHttpRegistrydescribes the functionality required in order to register a service at a service registry and discovery service.HttpRegistryContext<DESC extends HttpServerDescriptor> This context describes all information required to register a server ("service") at a service discovery registry.HttpRegistryContext.HttpRegistryContextBuilder<DESC extends HttpServerDescriptor> TheHttpRegistryContext.HttpRegistryContextBuilderinterface extends theHttpRegistryContextwith builder functionality as of the builder pattern.HttpRegistryRestServer<DESC extends HttpServerDescriptor,B extends HttpRegistryRestServer<DESC,B>> TheHttpRegistryRestServerprovides additional functionality for registering at and signing off from a service discovery service in order to resolve URLs to or from other services.HttpRegistrySidecar<DESC extends HttpServerDescriptor,B extends HttpRegistrySidecar<DESC,B>> TheHttpRegistrySidecardescribes the functionality required in order to register a service at a service registry and discovery service.HttpRegistryUrlAccessor Provides an accessor for a service registry registryUrlproperty.HttpRegistryUrlAccessor.HttpRegistryUrlBuilder<B extends HttpRegistryUrlAccessor.HttpRegistryUrlBuilder<B>> Provides a builder method for a service registry registry URL property returning the builder for applying multiple build operations.HttpRegistryUrlAccessor.HttpRegistryUrlMutator Provides a mutator for a service registry registry URL property.HttpRegistryUrlAccessor.HttpRegistryUrlProperty Provides a service registry registry URL property.HttpRestClient Extends aRestClientto be capable of providing a User-Agent withUserAgentAccessor.UserAgentMutator.setUserAgent(String)(HttpRestClient.withUserAgent(String)) and to be capable of using base URLs to be set withBaseUrlAccessor.BaseUrlMutator.setBaseUrl(String)(BaseUrlAccessor.BaseUrlBuilder.withBaseUrl(String)).HttpRestServer Extends aRestServerto be capable of opening a server socket on the local host with the provided port number viaConnectionOpenable.open(Object)or with an additional maximum number of connections viaHttpRestServer.open(int, int).HttpServerDescriptor TheHttpServerDescriptordescribes a server to be registered at a discovery registry so clients can resolve the server's URL.HttpServerDescriptor.HttpServerDescriptorBuilder<B extends HttpServerDescriptor.HttpServerDescriptorBuilder<B>> TheHttpServerDescriptor.HttpServerDescriptorBuilderinterface extends theHttpServerDescriptorinterface with builder functionality as of the builder pattern.HttpServerDescriptorAccessor<DESC extends HttpServerDescriptor> Provides an accessor for aHttpServerDescriptorproperty.HttpServerDescriptorAccessor.HttpServerDescriptorBuilder<DESC extends HttpServerDescriptor,B extends HttpServerDescriptorAccessor.HttpServerDescriptorBuilder<DESC,B>> Provides a builder method for aHttpServerDescriptorproperty returning the builder for applying multiple build operations.HttpServerDescriptorAccessor.HttpServerDescriptorMutator<DESC extends HttpServerDescriptor> Provides a mutator for aHttpServerDescriptorproperty.HttpServerDescriptorAccessor.HttpServerDescriptorProperty<DESC extends HttpServerDescriptor> Provides aHttpServerDescriptorproperty.HttpServerDescriptorFactory<DESC extends HttpServerDescriptor> TheHttpServerDescriptorFactoryprovides factory functionality for creatingHttpServerDescriptorinstances.LoopbackRestClient Extends aRestClientto be used as loopback device e.g. for testing purposes such as testing yourRestResponseObserverimplementations.LoopbackRestServer Extends aRestServerto be used as loopback device e.g. for testing purposes such as testing yourRestRequestObserverimplementations.PingPathAccessor Provides an accessor for a ping path property.PingPathAccessor.PingPathBuilder<B extends PingPathAccessor.PingPathBuilder<?>> Provides a mutator for an ping path property.PingPathAccessor.PingPathMutator Provides a mutator for a ping path property.PingPathAccessor.PingPathProperty Provides a ping path property.PingRequestObserver Mixin to register aRestRequestObserverupon "ping" requests.PingRequestObserverAccessor Provides an accessor for a pingRestRequestObserverproperty.PingRequestObserverAccessor.PingRequestObserverBuilder<B extends PingRequestObserverAccessor.PingRequestObserverBuilder<B>> Provides a builder method for a pingRestRequestObserverproperty returning the builder for applying multiple build operations.PingRequestObserverAccessor.PingRequestObserverMutator Provides a mutator for a pingRestRequestObserverproperty.PingRequestObserverAccessor.PingRequestObserverProperty Provides a pingRestRequestObserverproperty.PingUrlAccessor Provides an accessor for a pingUrlproperty.PingUrlAccessor.PingUrlBuilder<B extends PingUrlAccessor.PingUrlBuilder<?>> Provides a mutator for an pingUrlproperty.PingUrlAccessor.PingUrlMutator Provides a mutator for a pingUrlproperty.PingUrlAccessor.PingUrlProperty Provides a pingUrlproperty.RestCaller ARestCallerdescribes a REST request and theRestResponseObserverin charge for handling the response.RestCallerBuilder AnRestCallerBuilderextends anRestCallerwith builder functionality and addslambdasupport for handling the responses addressed to thisRestCaller.RestClient A client to send requests for communicating with a RESTful server such as theHttpRestServer.RestDeleteClient Helper interface to keep the huge amount of convenience methods under control.RestEndpoint AnRestEndpointsubscribes to aRestServer(HttpRestServer) and defines the target for a REST request.RestEndpointBuilder AnRestEndpointBuilderextends anRestEndpointwith builder functionality and addslambdasupport for handling the requests addressed to thisRestEndpoint.RestGetClient Helper interface to keep the huge amount of convenience methods under control.RestPostClient Helper interface to keep the huge amount of convenience methods under control.RestPutClient Helper interface to keep the huge amount of convenience methods under control.RestRequest ARestRequestdescribes a REST request and theRestResponseproviding the response.RestRequestBuilder AnRestRequestBuilderextends anRestCallerwith builder functionality and addslambdasupport for handling the responses addressed to thisRestCaller.RestRequestClient Helper interface to keep the huge amount of convenience methods under control.RestRequestEvent Defines aRestRequestEventbeing the request as consumed by aRestEndpoint.RestRequestHandler ARestRequestHandlerhandles a REST request on theRestClientinstance's side to do the actual technical implementation of sending that request (or mocking the send-out of a request).RestRequestObserver TheRestRequestObservercan be coded using thelambdasyntax and processes a request for a given locator and for a givenHttpMethod.RestResponse Defines aRestResponsebeing the base definition of a response as returned as of a request issued by aRestClient(HttpRestClient).RestResponseEvent RestResponseObserver TheRestResponseObservercan be coded using thelambdasyntax and processes a response from a server.RestServer TheRestServeracts as the target for clients issuing REST requests.StatusPathAccessor Provides an accessor for a status path property.StatusPathAccessor.StatusPathBuilder<B extends StatusPathAccessor.StatusPathBuilder<?>> Provides a mutator for an status path property.StatusPathAccessor.StatusPathMutator Provides a mutator for a status path property.StatusPathAccessor.StatusPathProperty Provides a status path property.StatusRequestObserver Mixin to register aRestRequestObserverupon "status" requests.StatusRequestObserverAccessor Provides an accessor for a statusRestRequestObserverproperty.StatusRequestObserverAccessor.StatusRequestObserverBuilder<B extends StatusRequestObserverAccessor.StatusRequestObserverBuilder<B>> Provides a builder method for a statusRestRequestObserverproperty returning the builder for applying multiple build operations.StatusRequestObserverAccessor.StatusRequestObserverMutator Provides a mutator for a statusRestRequestObserverproperty.StatusRequestObserverAccessor.StatusRequestObserverProperty Provides a statusRestRequestObserverproperty.StatusUrlAccessor Provides an accessor for a statusUrlproperty.StatusUrlAccessor.StatusUrlBuilder<B extends StatusUrlAccessor.StatusUrlBuilder<?>> Provides a mutator for an statusUrlproperty.StatusUrlAccessor.StatusUrlMutator Provides a mutator for a statusUrlproperty.StatusUrlAccessor.StatusUrlProperty Provides a statusUrlproperty. -
Class Summary Class Description AbstractHttpDiscoveryRestClientDecorator<B extends HttpDiscoveryRestClient<B>> Abstract class for easily decorating aHttpDiscoveryRestClient.AbstractHttpDiscoverySidecar<B extends HttpDiscoverySidecar<B>> Abstract class for easily decorating aHttpRegistrySidecar.AbstractHttpRegistryContextBuilder<DESC extends HttpServerDescriptor> AbstractHttpRegistryRestServerDecorator<DESC extends HttpServerDescriptor,B extends HttpRegistryRestServer<DESC,B>> Abstract class for easily decorating aHttpRegistryRestServer.AbstractHttpRegistrySidecar<DESC extends HttpServerDescriptor,B extends HttpRegistrySidecar<DESC,B>> Abstract class for easily decorating aHttpRegistrySidecar.AbstractHttpRestClientDecorator<B extends HttpRestClient> Abstract class for easily decorating aHttpRestClient.AbstractHttpRestServerDecorator<B extends HttpRestServer> Abstract class for easily decorating aHttpRestServer.AbstractRestClient Abstract base implementation of theRestClientinterface being the foundation for variousRestClientimplementations such asHttpRestClientImplorLoopbackRestClientImpl.AbstractRestServer Implementation of the base functionality of theRestServerinterface omitting the HTTP handling part being the foundation for variousRestServerimplementations such asHttpRestServerImplorLoopbackRestServerImpl.BasicAuthEndpointBuilderImpl The implementation of theBasicAuthEndpointBuilderinterface as good old POJO for use by differentRestServerimplementations.BasicAuthEventImpl TheBasicAuthEventImplclass implements theBasicAuthEventtype.HttpDiscoveryContextBuilderImpl HttpRestClientImpl TheHttpRestClientImplimplements theHttpRestClientinterface.HttpRestClientSingleton The singleton of theHttpRestClientImplfor easyHttpRestClientaccess.HttpRestClientSugar Declarative syntactic sugar which may be statically imported in order to allow declarative definitions of REST client functionality:import static org.refcodes.rest.HttpRestClientSugar.*;HttpRestServerImpl Implementation of theHttpRestServerinterface using theHttpServerdefined in thecom.sun.net.httpserverpackage.HttpRestServerSingleton The singleton of theHttpRestServerImplfor easyHttpRestServeraccess.HttpRestServerSugar Declarative syntactic sugar which may be statically imported in order to allow declarative definitions of RESTful server functionality:import static org.refcodes.rest.HttpRestServerSugarLoopbackRestClientImpl Implementation if theLoopbackRestClientfor easy testing of your requests being issued with aRestClient(HttpRestClient) and the according responselambdaexpressions.LoopbackRestClientSingleton The singleton of theLoopbackRestClientImplfor easyLoopbackRestClientImplaccess.LoopbackRestServerImpl Implementation if theLoopbackRestServerfor easy testing of your requests being received by aRestServer(HttpRestServer) and the according responselambdaexpressions.LoopbackRestServerSingleton The singleton of theLoopbackRestServerImplfor easyRestServeraccess.OauthTokenHandler Self refreshing implementation of theOauthToken.RestCallerBuilderImpl The implementation of theRestCallerBuilderinterface as good old POJO for use by differentRestClientimplementations.RestDeleteClientSugar Helper class to get the syntactic sugar (from a maintenance point of view) under control.RestEndpointBuilderImpl The implementation of theRestEndpointBuilderinterface as good old POJO for use by differentRestServerimplementations.RestGetClientSugar Helper class to get the syntactic sugar (from a maintenance point of view) under control.RestPostClientSugar Helper class to get the syntactic sugar (from a maintenance point of view) under control.RestPutClientSugar Helper class to get the syntactic sugar (from a maintenance point of view) under control.RestRequestBuilderImpl The implementation of theRestCallerBuilderinterface as good old POJO for use by differentRestClientimplementations.RestRequestClientSugar Helper class to get the syntactic sugar (from a maintenance point of view) under control.RestRequestEventImpl Implementation of theRestRequestEventinterface as good old POJO for use by differentRestServerimplementations.RestResponseEventImpl Implementation of theRestResponseEventinterface as good old POJO for use by differentRestClientimplementations.RestResponseImpl Implementation of theRestResponseEventinterface as good old POJO for use by differentRestClientimplementations. -
Enum Summary Enum Description HttpExceptionHandling Defines how errors affect the HTTP-Body whilst processing aHttpRequestor aHttpResponsealong with the according sub-classes.