One can also generate API client or server using the online generators (https://generator.swagger.io)
For example, to generate Ruby API client, simply send the following HTTP request using curl:
curl -X POST -H "content-type:application/json" -d '{"swaggerUrl":"https://petstore.swagger.io/v2/swagger.json"}' https://generator.swagger.io/api/gen/clients/ruby
Then you will receive a JSON response with the URL to download the zipped code.
To customize the SDK, you can POST
to https://generator.swagger.io/api/gen/clients/{language}
with the following HTTP body:
{
"options": {},
"swaggerUrl": "https://petstore.swagger.io/v2/swagger.json"
}
in which the options
for a language can be obtained by submitting a GET
request to https://generator.swagger.io/api/gen/clients/{language}
:
For example, curl https://generator.swagger.io/api/gen/clients/python
returns
{
"packageName": {
"opt": "packageName",
"description": "python package name (convention: snake_case).",
"type": "string",
"default": "swagger_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:
{
"options": {
"packageName": "pet_store"
},
"swaggerUrl": "https://petstore.swagger.io/v2/swagger.json"
}
and here is the curl command:
curl -H "Content-type: application/json" -X POST -d '{"options": {"packageName": "pet_store"},"swaggerUrl": "https://petstore.swagger.io/v2/swagger.json"}' https://generator.swagger.io/api/gen/clients/python
Instead of using swaggerUrl
with an URL to the OpenAPI/Swagger spec, one can include the spec in the JSON payload with spec
, e.g.
{
"options": {},
"spec": {
"swagger": "2.0",
"info": {
"version": "1.0.0",
"title": "Test API"
},
...
}
}