mirror of
https://github.com/valitydev/openapi-generator.git
synced 2024-11-07 19:08:52 +00:00
78 lines
2.6 KiB
Markdown
78 lines
2.6 KiB
Markdown
|
## Online OpenAPI generator
|
||
|
|
||
|
One can also generate API client or server using the online openapi-generator.
|
||
|
|
||
|
Here are the steps to run it locally:
|
||
|
```
|
||
|
mvn clean install
|
||
|
cd openapi-generator-online
|
||
|
mvn jetty:run
|
||
|
```
|
||
|
|
||
|
For example, to generate Ruby API client, simply send the following HTTP request using curl:
|
||
|
```sh
|
||
|
curl -X POST -H "content-type:application/json" -d '{"swaggerUrl":"https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml"}' https://localhost:8080/api/gen/clients/ruby
|
||
|
```
|
||
|
Then you will receieve a JSON response with the URL to download the zipped code.
|
||
|
|
||
|
To customize the SDK, you can `POST` to `https://localhost:8080/gen/clients/{language}` with the following HTTP body:
|
||
|
```json
|
||
|
{
|
||
|
"options": {},
|
||
|
"swaggerUrl": "https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml"
|
||
|
}
|
||
|
```
|
||
|
in which the `options` for a language can be obtained by submitting a `GET` request to `https://locahost:8080/api/gen/clients/{language}`:
|
||
|
|
||
|
For example, `curl https://localhost:8080/api/gen/clients/python` returns
|
||
|
```json
|
||
|
"packageName":{
|
||
|
"opt":"packageName",
|
||
|
"description":"python package name (convention: snake_case).",
|
||
|
"type":"string",
|
||
|
"default":"openapi_client"
|
||
|
},
|
||
|
"packageVersion":{
|
||
|
"opt":"packageVersion",
|
||
|
"description":"python package version.",
|
||
|
"type":"string",
|
||
|
"default":"1.0.0"
|
||
|
},
|
||
|
"sortParamsByRequiredFlag":{
|
||
|
"opt":"sortParamsByRequiredFlag",
|
||
|
"description":"Sort method arguments to place required parameters before optional parameters.",
|
||
|
"type":"boolean",
|
||
|
"default":"true"
|
||
|
}
|
||
|
|
||
|
{}
|
||
|
```
|
||
|
To set package name to `pet_store`, the HTTP body of the request is as follows:
|
||
|
```json
|
||
|
{
|
||
|
"options": {
|
||
|
"packageName": "pet_store"
|
||
|
},
|
||
|
"swaggerUrl": "https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml"
|
||
|
}
|
||
|
```
|
||
|
and here is the curl command:
|
||
|
```sh
|
||
|
curl -H "Content-type: application/json" -X POST -d '{"options": {"packageName": "pet_store"},"swaggerUrl": "https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml"}' https://localhost:8080/api/gen/clients/python
|
||
|
```
|
||
|
|
||
|
Instead of using `swaggerUrl` with an URL to the OpenAPI spec, one can include the spec in the JSON payload with `spec`, e.g.
|
||
|
```json
|
||
|
{
|
||
|
"options": {},
|
||
|
"spec": {
|
||
|
"swagger": "2.0",
|
||
|
"info": {
|
||
|
"version": "1.0.0",
|
||
|
"title": "Test API"
|
||
|
},
|
||
|
...
|
||
|
}
|
||
|
}
|
||
|
```
|