|
|
||
|---|---|---|
| src | ||
| .gitignore | ||
| CHANGELOG.md | ||
| FUNDING.md | ||
| Jenkinsfile | ||
| Jenkinsfile-javax | ||
| Jenkinsjob-javax.xml | ||
| Jenkinsjob.xml | ||
| LICENSE.md | ||
| README.md | ||
| gxJRS.iml | ||
| pom.javax.xml | ||
| pom.xml | ||
README.md
gxRest
The gCube eXtensions to the Rest Protocol (gxRest) is a set of Java libraries designed to provide convenient round-trip interaction between a Restful web application (also known as "service") and its clients.
gxRest has the flexibility for different degrees of exploitation:
- it can be entirely adopted both at client and service side with full benefit of its conventions;
- it can be used to send REST requests based only on plain HTTP;
- it can be used only to return HTTP code/messagess from the service;
- it can be used only to throw Exceptions from the service to the client.
Examples of use
Sending a request:
GXHTTPRequest request = GXHTTPRequest.newRequest("http://host:port/service/").from("GXRequestTest");
//prepare some parameters
String context ="...";
Map<String,String> queryParams = new WeakHashMap<>();
queryParams.put("param name", "param value");
GXInboundResponse response = request.path("context")
.queryParams(queryParams).withBody(context).post();
Returning a success response:
@POST
public Response create(...) {
//Resource successfully created
URI location = ... //URI of the new resource
return GXOutboundSuccessResponse.newCREATEResponse(location)
.withMessage("Resource successfully created.")
.ofType(MediaType.APPLICATION_JSON)
.build();
}
Throwing an exception:
@POST
public Response create(...) {
//Oh no, something failed here
GXOutboundErrorResponse.throwException(new MyCustomException("Resource already exists."));
}
Parsing a response
// invoke the remote method and get a response.
GXInboundResponse response = ...;
if (response.hasException())
throw response.getException();
//assuming a created (200) code was expected
if (response.hasCREATEDCode()) {
System.out.println("Resource successfully created!");
}
//access content as string
String value = response.getStreamedContentAsString();
//unmasharll content as json
Context returnedContext = response.tryConvertStreamedContentFromJson(Context.class);
Documentation
Deployment
Notes about how to deploy this component on an infrastructure or link to wiki doc (if any).
Built With
License
This project is licensed under the terms specified in the LICENSE.md file.
About the gCube Framework
This software is part of the gCubeFramework: an open-source software toolkit used for building and operating Hybrid Data Infrastructures enabling the dynamic deployment of Virtual Research Environments by favouring the realisation of reuse oriented policies.
The projects leading to this software have received funding from a series of European Union programmes see FUNDING.md