|
|
- [Mustache template variables in the model](#mustache-template-variables-in-the-model)
|
|
|
- [Mustache template variables in the operation](#mustache-template-variables-in-the-operation)
|
|
|
- [Usage](#usage)
|
|
|
- [Tips](#tips)
|
|
|
- [Explanations](#explanations)
|
|
|
|
|
|
## Mustache template variables in the model
|
|
|
|
|
|
To obtain a list of variables (tags) available in the mustache template. Please use `debugOperations` and `debugModels`. Heres is an example for variables in the model templates:
|
|
|
```
|
|
|
java -DdebugModels -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate \
|
|
|
-i http://petstore.swagger.io/v2/swagger.json \
|
|
|
-l csharp \
|
|
|
```
|
|
|
and here is part of the output:
|
|
|
```
|
|
|
############ Model info ############
|
|
|
[ {
|
|
|
"model" : {
|
|
|
"name" : "Order",
|
|
|
"classname" : "Order",
|
|
|
"classVarName" : "Order",
|
|
|
"modelJson" : "{\n \"type\" : \"object\",\n \"properties\" : {\n \"id\" : {\n \"type\" : \"integer\",\n \"format\" : \"int64\"\n },\n \"petId\" : {\n \"type\" : \"integer\",\n \"format\" : \"int64\"\n },\n \"quantity\" : {\n \"type\" : \"integer\",\n \"format\" : \"int32\"\n },\n \"shipDate\" : {\n \"type\" : \"string\",\n \"format\" : \"date-time\"\n },\n \"status\" : {\n \"type\" : \"string\",\n \"description\" : \"Order Status\",\n \"enum\" : [ \"placed\", \"approved\", \"delivered\" ]\n },\n \"complete\" : {\n \"type\" : \"boolean\",\n \"default\" : false\n }\n },\n \"xml\" : {\n \"name\" : \"Order\"\n }\n}",
|
|
|
"vars" : [ {
|
|
|
"baseName" : "id",
|
|
|
"getter" : "getId",
|
|
|
"setter" : "setId",
|
|
|
"datatype" : "long?",
|
|
|
"datatypeWithEnum" : "long?",
|
|
|
"name" : "Id",
|
|
|
"defaultValue" : "null",
|
|
|
"baseType" : "long?",
|
|
|
"jsonSchema" : "{\n \"type\" : \"integer\",\n \"format\" : \"int64\"\n}",
|
|
|
"hasMore" : true,
|
|
|
"isPrimitiveType" : true,
|
|
|
"isNotContainer" : true,
|
|
|
"isEnum" : false
|
|
|
}, {
|
|
|
```
|
|
|
## Mustache template variables in the operation
|
|
|
|
|
|
For operation (resource) templates, please use `debugOperations` instead:
|
|
|
```
|
|
|
java -DdebugOperations -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate \
|
|
|
-i http://petstore.swagger.io/v2/swagger.json \
|
|
|
-l csharp \
|
|
|
```
|
|
|
Here is part of the result
|
|
|
```
|
|
|
############ Operation info ############
|
|
|
[ {
|
|
|
"packageName" : "Org.OpenAPITools",
|
|
|
"hasImport" : true,
|
|
|
"modelPackage" : "Org.OpenAPITools.Model",
|
|
|
"package" : "Org.OpenAPITools.Api",
|
|
|
"clientPackage" : "Org.OpenAPITools.Client",
|
|
|
"version" : "1.0.0",
|
|
|
"classVarName" : "user",
|
|
|
"basePath" : "http://petstore.swagger.io/v2",
|
|
|
"packageVersion" : "1.0.0",
|
|
|
"infoEmail" : "some@email.com",
|
|
|
"importPath" : "Org.OpenAPITools.Api.User",
|
|
|
"licenseInfo" : "Apache 2.0",
|
|
|
"hasMore" : "true",
|
|
|
"generatedDate" : "2015-10-06T12:20:11.434+08:00",
|
|
|
"classname" : "UserApi",
|
|
|
"imports" : [ {
|
|
|
"import" : "Org.OpenAPITools.Model.User"
|
|
|
} ],
|
|
|
"appName" : "Swagger Petstore",
|
|
|
"appVersion" : "1.0.0",
|
|
|
"generatorClass" : "class io.swagger.codegen.languages.CSharpClientCodegen",
|
|
|
"baseName" : "User",
|
|
|
"contextPath" : "/v2",
|
|
|
"operations" : {
|
|
|
"operation" : [ {
|
|
|
"responseHeaders" : [ ],
|
|
|
"hasProduces" : true,
|
|
|
"hasParams" : true,
|
|
|
"hasMore" : true,
|
|
|
"isResponseBinary" : false,
|
|
|
"path" : "/user",
|
|
|
"operationId" : "CreateUser",
|
|
|
"httpMethod" : "POST",
|
|
|
"summary" : "Create user",
|
|
|
"notes" : "This can only be done by the logged in user.",
|
|
|
"baseName" : "User",
|
|
|
"produces" : [ {
|
|
|
"hasMore" : "true",
|
|
|
"mediaType" : "application/xml"
|
|
|
}, {
|
|
|
"hasMore" : null,
|
|
|
"mediaType" : "application/json"
|
|
|
} ],
|
|
|
"bodyParam" : {
|
|
|
"isBodyParam" : true,
|
|
|
"baseName" : "body",
|
|
|
"paramName" : "body",
|
|
|
"dataType" : "User",
|
|
|
"description" : "Created user object",
|
|
|
"jsonSchema" : "{\n \"in\" : \"body\",\n \"name\" : \"body\",\n \"description\" : \"Created user object\",\n \"required\" : true,\n \"schema\" : {\n \"$ref\" : \"#/definitions/User\"\n }\n}",
|
|
|
"isEnum" : false,
|
|
|
"vendorExtensions" : { },
|
|
|
"required" : true
|
|
|
},
|
|
|
"allParams" : [ {
|
|
|
"isBodyParam" : true,
|
|
|
"baseName" : "body",
|
|
|
"paramName" : "body",
|
|
|
"dataType" : "User",
|
|
|
"description" : "Created user object",
|
|
|
"jsonSchema" : "{\n \"in\" : \"body\",\n \"name\" : \"body\",\n \"description\" : \"Created user object\",\n \"required\" : true,\n \"schema\" : {\n \"$ref\" : \"#/definitions/User\"\n }\n}",
|
|
|
"isEnum" : false,
|
|
|
"vendorExtensions" : { },
|
|
|
"required" : true
|
|
|
} ],
|
|
|
"bodyParams" : [ {
|
|
|
"isBodyParam" : true,
|
|
|
"baseName" : "body",
|
|
|
"paramName" : "body",
|
|
|
"dataType" : "User",
|
|
|
"description" : "Created user object",
|
|
|
"jsonSchema" : "{\n \"in\" : \"body\",\n \"name\" : \"body\",\n \"description\" : \"Created user object\",\n \"required\" : true,\n \"schema\" : {\n \"$ref\" : \"#/definitions/User\"\n }\n}",
|
|
|
"isEnum" : false,
|
|
|
"vendorExtensions" : { },
|
|
|
"required" : true
|
|
|
} ],
|
|
|
"pathParams" : [ ],
|
|
|
"queryParams" : [ ],
|
|
|
"headerParams" : [ ],
|
|
|
"formParams" : [ ],
|
|
|
"tags" : [ "User" ],
|
|
|
"responses" : [ {
|
|
|
"headers" : [ ],
|
|
|
"code" : "0",
|
|
|
"message" : "successful operation",
|
|
|
"hasMore" : false,
|
|
|
"isDefault" : true,
|
|
|
"simpleType" : true,
|
|
|
"primitiveType" : true,
|
|
|
"isMapContainer" : false,
|
|
|
"isListContainer" : false,
|
|
|
"isBinary" : false,
|
|
|
"jsonSchema" : "{\n \"description\" : \"successful operation\"\n}",
|
|
|
"wildcard" : true
|
|
|
} ],
|
|
|
"imports" : [ "User" ],
|
|
|
"vendorExtensions" : { },
|
|
|
"nickname" : "CreateUser",
|
|
|
"hasBodyParam" : true,
|
|
|
"hasQueryParams" : false,
|
|
|
"hasHeaderParams" : false,
|
|
|
"hasPathParams" : false,
|
|
|
"hasFormParams" : false
|
|
|
}, {
|
|
|
```
|
|
|
## Usage
|
|
|
|
|
|
For usage of the template variable, enter the variable name (e.g. basePath) in the search box and submit. Then filter by `HTML & Django` under **Languages**, e.g. https://github.com/openapitools/openapi-generator/search?l=html%2Bdjango&q=basepath&utf8=%E2%9C%93
|
|
|
|
|
|
## Tips
|
|
|
|
|
|
To access the first or last element in a list
|
|
|
```
|
|
|
{{#vars}}{{#-first}} this is the first element {{.}} {{/-first}}{{/vars}}
|
|
|
{{#vars}}{{#-last}} this is the last element {{.}} {{/-last}}{{/vars}}
|
|
|
```
|
|
|
## Explanations
|
|
|
|
|
|
Here are the explanations for some of the mustache tags:
|
|
|
|
|
|
- **complexType**: stores the name of the model (e.g. Pet)
|
|
|
- **isContainer**: true if the parameter or property is an array or a map.
|
|
|
- **isPrimitiveType**: true if the parameter or property type is a primitive type (e.g. string, integer, etc) as defined in the spec.
|
|
|
|
|
|
Please feel free to update the list above with more tags. For any question, please open an issue. |