Datamodel Code Generator
Project description
datamodel-code-generator
This generator creates pydantic mode from an openapi file.
This project is an experimental phase.
Installation
To install datamodel-code-generator
:
$ pip install datamodel-code-generator
Usage
The datamodel-codegen
command:
usage: datamodel-codegen [-h] [--input INPUT] [--output OUTPUT]
optional arguments:
-h, --help show this help message and exit
--input INPUT Open API YAML file
--output OUTPUT Output file
Example
$ datamodel-codegen --input api.yaml --output model.py
api.yaml
:
openapi: "3.0.0"
info:
version: 1.0.0
title: Swagger Petstore
license:
name: MIT
servers:
- url: http://petstore.swagger.io/v1
paths:
/pets:
get:
summary: List all pets
operationId: listPets
tags:
- pets
parameters:
- name: limit
in: query
description: How many items to return at one time (max 100)
required: false
schema:
type: integer
format: int32
responses:
'200':
description: A paged array of pets
headers:
x-next:
description: A link to the next page of responses
schema:
type: string
content:
application/json:
schema:
$ref: "#/components/schemas/Pets"
default:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
x-amazon-apigateway-integration:
uri:
Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations
passthroughBehavior: when_no_templates
httpMethod: POST
type: aws_proxy
post:
summary: Create a pet
operationId: createPets
tags:
- pets
responses:
'201':
description: Null response
default:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
x-amazon-apigateway-integration:
uri:
Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations
passthroughBehavior: when_no_templates
httpMethod: POST
type: aws_proxy
/pets/{petId}:
get:
summary: Info for a specific pet
operationId: showPetById
tags:
- pets
parameters:
- name: petId
in: path
required: true
description: The id of the pet to retrieve
schema:
type: string
responses:
'200':
description: Expected response to a valid request
content:
application/json:
schema:
$ref: "#/components/schemas/Pets"
default:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
x-amazon-apigateway-integration:
uri:
Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations
passthroughBehavior: when_no_templates
httpMethod: POST
type: aws_proxy
components:
schemas:
Pet:
required:
- id
- name
properties:
id:
type: integer
format: int64
name:
type: string
tag:
type: string
Pets:
type: array
items:
$ref: "#/components/schemas/Pet"
Error:
required:
- code
- message
properties:
code:
type: integer
format: int32
message:
type: string
apis:
type: array
items:
type: object
properties:
apiKey:
type: string
description: To be used as a dataset parameter value
apiVersionNumber:
type: string
description: To be used as a version parameter value
# apiUrl:
# type: string
# format: uriref
# description: "The URL describing the dataset's fields"
# apiDocumentationUrl:
# type: string
# format: uriref
# description: A URL to the API console for each API
model.py
:
class Pet(BaseModel):
id: int
name: str
tag: str = None
Pets = List[Pet]
class Error(BaseModel):
code: int
message: str
class api(BaseModel):
apiKey: str = None
apiVersionNumber: str = None
apis = List[api]
Development
Install the package in editable mode:
$ git clone git@github.com:koxudaxi/datamodel-code-generator.git
$ pip install -e datamodel-code-generator
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for datamodel-code-generator-0.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3824e16dd5ba3ee29efb997195262929b4758c98278b68e689174c91f2deee00 |
|
MD5 | 5b08fc1f67fe6ad11077e3ebf7c0d0fb |
|
BLAKE2b-256 | 5385c4920571e25f4cc20dd979d88b95da3b2d6c54670c33f31b68df149977a3 |
Close
Hashes for datamodel_code_generator-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5efcf06bc97610d1380008a03ed5303eb31c71fc89b54d2906d2b1a34a34d85d |
|
MD5 | c3b533813fa0d112af65e6b961670f87 |
|
BLAKE2b-256 | 10ecd4a5a3e0dc4eff0f15c34210b377ebd745d6e6e080bf6448298c7bbfd86d |