Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Java][jersey2] Use builder pattern for requests (#4666)
* Use builder pattern for requests * petstore * Add @throws annotation * regenerate jersey2 test files * Also group bodyParam in builder class * petstore java6 * regenerate java8 * ensure up to date
- Loading branch information
Showing
139 changed files
with
2,378 additions
and
1,330 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
111 changes: 111 additions & 0 deletions
111
modules/openapi-generator/src/main/resources/Java/libraries/jersey2/api_doc.mustache
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
# {{classname}}{{#description}} | ||
|
||
{{description}}{{/description}} | ||
|
||
All URIs are relative to *{{basePath}}* | ||
|
||
Method | HTTP request | Description | ||
------------- | ------------- | ------------- | ||
{{#operations}}{{#operation}}[**{{operationId}}**]({{classname}}.md#{{operationId}}) | **{{httpMethod}}** {{path}} | {{#summary}}{{summary}}{{/summary}} | ||
{{/operation}}{{/operations}} | ||
|
||
{{#operations}} | ||
{{#operation}} | ||
|
||
## {{operationId}} | ||
|
||
{{^vendorExtensions.x-group-parameters}}> {{#returnType}}{{returnType}} {{/returnType}}{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}){{/vendorExtensions.x-group-parameters}} | ||
{{#vendorExtensions.x-group-parameters}}> {{#returnType}}{{returnType}} {{/returnType}}{{operationId}}({{#pathParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/pathParams}}){{#allParams}}{{^isPathParam}}.{{paramName}}({{paramName}}){{/isPathParam}}{{/allParams}}.execute();{{/vendorExtensions.x-group-parameters}} | ||
|
||
{{summary}}{{#notes}} | ||
|
||
{{{unescapedNotes}}}{{/notes}} | ||
|
||
### Example | ||
|
||
```java | ||
// Import classes: | ||
import {{{invokerPackage}}}.ApiClient; | ||
import {{{invokerPackage}}}.ApiException; | ||
import {{{invokerPackage}}}.Configuration;{{#hasAuthMethods}} | ||
import {{{invokerPackage}}}.auth.*;{{/hasAuthMethods}} | ||
import {{{invokerPackage}}}.models.*; | ||
import {{{package}}}.{{{classname}}}; | ||
|
||
public class Example { | ||
public static void main(String[] args) { | ||
ApiClient defaultClient = Configuration.getDefaultApiClient(); | ||
defaultClient.setBasePath("{{{basePath}}}"); | ||
{{#hasAuthMethods}} | ||
{{#authMethods}}{{#isBasic}}{{#isBasicBasic}} | ||
// Configure HTTP basic authorization: {{{name}}} | ||
HttpBasicAuth {{{name}}} = (HttpBasicAuth) defaultClient.getAuthentication("{{{name}}}"); | ||
{{{name}}}.setUsername("YOUR USERNAME"); | ||
{{{name}}}.setPassword("YOUR PASSWORD");{{/isBasicBasic}}{{#isBasicBearer}} | ||
// Configure HTTP bearer authorization: {{{name}}} | ||
HttpBearerAuth {{{name}}} = (HttpBearerAuth) defaultClient.getAuthentication("{{{name}}}"); | ||
{{{name}}}.setBearerToken("BEARER TOKEN");{{/isBasicBearer}}{{/isBasic}}{{#isApiKey}} | ||
// Configure API key authorization: {{{name}}} | ||
ApiKeyAuth {{{name}}} = (ApiKeyAuth) defaultClient.getAuthentication("{{{name}}}"); | ||
{{{name}}}.setApiKey("YOUR API KEY"); | ||
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) | ||
//{{{name}}}.setApiKeyPrefix("Token");{{/isApiKey}}{{#isOAuth}} | ||
// Configure OAuth2 access token for authorization: {{{name}}} | ||
OAuth {{{name}}} = (OAuth) defaultClient.getAuthentication("{{{name}}}"); | ||
{{{name}}}.setAccessToken("YOUR ACCESS TOKEN");{{/isOAuth}} | ||
{{/authMethods}} | ||
{{/hasAuthMethods}} | ||
|
||
{{{classname}}} apiInstance = new {{{classname}}}(defaultClient); | ||
{{#allParams}} | ||
{{{dataType}}} {{{paramName}}} = {{{example}}}; // {{{dataType}}} | {{{description}}} | ||
{{/allParams}} | ||
try { {{^vendorExtensions.x-group-parameters}} | ||
{{#returnType}}{{{returnType}}} result = {{/returnType}}apiInstance.{{{operationId}}}({{#allParams}}{{{paramName}}}{{#hasMore}}, {{/hasMore}}{{/allParams}});{{/vendorExtensions.x-group-parameters}} | ||
{{#vendorExtensions.x-group-parameters}}{{#returnType}}{{{returnType}}} result = {{/returnType}}api.{{operationId}}({{#pathParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/pathParams}}){{#allParams}}{{^isPathParam}} | ||
.{{paramName}}({{paramName}}){{/isPathParam}}{{/allParams}} | ||
.execute();{{/vendorExtensions.x-group-parameters}} | ||
{{#returnType}}System.out.println(result);{{/returnType}} | ||
} catch (ApiException e) { | ||
System.err.println("Exception when calling {{{classname}}}#{{{operationId}}}"); | ||
System.err.println("Status code: " + e.getCode()); | ||
System.err.println("Reason: " + e.getResponseBody()); | ||
System.err.println("Response headers: " + e.getResponseHeaders()); | ||
e.printStackTrace(); | ||
} | ||
} | ||
} | ||
``` | ||
|
||
### Parameters | ||
|
||
{{^allParams}}This endpoint does not need any parameter.{{/allParams}}{{#allParams}}{{#-last}} | ||
Name | Type | Description | Notes | ||
------------- | ------------- | ------------- | -------------{{/-last}}{{/allParams}} | ||
{{#allParams}} **{{paramName}}** | {{#isPrimitiveType}}**{{dataType}}**{{/isPrimitiveType}}{{^isPrimitiveType}}{{#isFile}}**{{dataType}}**{{/isFile}}{{^isFile}}[**{{dataType}}**]({{baseType}}.md){{/isFile}}{{/isPrimitiveType}}| {{description}} |{{^required}} [optional]{{/required}}{{^isContainer}}{{#defaultValue}} [default to {{defaultValue}}]{{/defaultValue}}{{/isContainer}}{{#allowableValues}} [enum: {{#values}}{{{.}}}{{^-last}}, {{/-last}}{{/values}}]{{/allowableValues}} | ||
{{/allParams}} | ||
|
||
### Return type | ||
|
||
{{#returnType}}{{#returnTypeIsPrimitive}}**{{returnType}}**{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}[**{{returnType}}**]({{returnBaseType}}.md){{/returnTypeIsPrimitive}}{{/returnType}}{{^returnType}}null (empty response body){{/returnType}} | ||
|
||
### Authorization | ||
|
||
{{^authMethods}}No authorization required{{/authMethods}}{{#authMethods}}[{{name}}](../README.md#{{name}}){{^-last}}, {{/-last}}{{/authMethods}} | ||
|
||
### HTTP request headers | ||
|
||
- **Content-Type**: {{#consumes}}{{{mediaType}}}{{#hasMore}}, {{/hasMore}}{{/consumes}}{{^consumes}}Not defined{{/consumes}} | ||
- **Accept**: {{#produces}}{{{mediaType}}}{{#hasMore}}, {{/hasMore}}{{/produces}}{{^produces}}Not defined{{/produces}} | ||
|
||
{{#responses.0}} | ||
### HTTP response details | ||
| Status code | Description | Response headers | | ||
|-------------|-------------|------------------| | ||
{{#responses}} | ||
| **{{code}}** | {{message}} | {{#headers}} * {{baseName}} - {{description}} <br> {{/headers}}{{^headers.0}} - {{/headers.0}} | | ||
{{/responses}} | ||
{{/responses.0}} | ||
|
||
{{/operation}} | ||
{{/operations}} |
51 changes: 51 additions & 0 deletions
51
modules/openapi-generator/src/main/resources/Java/libraries/jersey2/api_test.mustache
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
{{>licenseInfo}} | ||
|
||
package {{package}}; | ||
|
||
import {{invokerPackage}}.ApiException; | ||
{{#imports}}import {{import}}; | ||
{{/imports}} | ||
import org.junit.Test; | ||
import org.junit.Ignore; | ||
|
||
{{^fullJavaUtil}} | ||
import java.util.ArrayList; | ||
import java.util.HashMap; | ||
import java.util.List; | ||
import java.util.Map; | ||
{{/fullJavaUtil}} | ||
|
||
/** | ||
* API tests for {{classname}} | ||
*/ | ||
@Ignore | ||
public class {{classname}}Test { | ||
private final {{classname}} api = new {{classname}}(); | ||
|
||
{{#operations}}{{#operation}} | ||
/** | ||
* {{summary}} | ||
* | ||
* {{notes}} | ||
* | ||
* @throws ApiException | ||
* if the Api call fails | ||
*/ | ||
@Test | ||
public void {{operationId}}Test() throws ApiException { | ||
{{#allParams}} | ||
{{{dataType}}} {{paramName}} = null; | ||
{{/allParams}} | ||
{{^vendorExtensions.x-group-parameters}} | ||
{{#returnType}}{{{returnType}}} response = {{/returnType}}api.{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); | ||
{{/vendorExtensions.x-group-parameters}} | ||
{{#vendorExtensions.x-group-parameters}} | ||
{{#returnType}}{{{returnType}}} response = {{/returnType}}api.{{operationId}}({{#pathParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/pathParams}}){{#allParams}}{{^isPathParam}} | ||
.{{paramName}}({{paramName}}){{/isPathParam}}{{/allParams}} | ||
.execute(); | ||
{{/vendorExtensions.x-group-parameters}} | ||
// TODO: test validations | ||
} | ||
{{/operation}}{{/operations}} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.