Metadata-Version: 2.1
Name: openapi-model-generator
Version: 0.1.15
Summary: This library allows us to generate django models and drf serializers using an OpenAPI schema
Home-page: https://github.com/sewi2/openapi-model-generator
Author: Dmitry Nikolaev
Author-email: sewi0018@gmail.com
License: MIT
Download-URL: https://github.com/sewi2/openapi-model-generator/archive/refs/tags/0.1.15.tar.gz
Keywords: openapi,models,serializers,generator
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Requires-Python: ~=3.6
Description-Content-Type: text/markdown
License-File: LICENCE.txt

# openapi_model_generator

This library allows us to generate django models and drf serializers using an OpenAPI schema.

# HowTo Use #
```shell
pip install openapi_model_generator

python -m openapi_model_generator {open_api_path.json} {destination}
python -m openapi_model_generator {open_api_path.yaml} {destination}
```
    
    
As an example:
```shell
python -m openapi_model_generator schema.esb.json base_dir
```

or 

```shell
python -m openapi_model_generator /home/user/schema.esb.json /home/user/base_dir
```

This command creates base models and serializers based on its models into the directory provided.

Then you can use them to define models and serializers in your Django+DRF application.

models.py:

```python
from utils import define_models

from base_dir import base_models


define_models(['Model1', 'Model2', ...], base_models, locals())
```

serializers.py:

```python
from utils import define_serializers

from base_dir import base_serializers
from . import models


define_serializers(['Model1', 'Model2', ...], base_serializers, locals(), models)
```

After that you can use them:

```python
import pydoc
model_1 = pydoc.locate('{django_app}.models.Model1')
model_2 = pydoc.locate('{django_app}.models.Model2')
...
serializer_1 = pydoc.locate('{django_app}.serializers.Model1Serializer')
serializer_2 = pydoc.locate('{django_app}.serializers.Model2Serializer')
```


