[Django]RESTfulとOpenAPI


OpenAPI(元Swagger)はYAMLやJSONの形式でREST API仕様を記述しておくと、Swagger Editor、OpenAPI Generatorといったツールを介してコードを自動生成できる。特にコンポーネント(=モデル)のコード生成は便利。

API Editor – Download or Try it in the Cloud (swagger.io)

OpenAPITools/openapi-generator: OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3) (github.com)

Djangoを使う場合、API仕様からコード生成はできないが、コードからAPI仕様の一部は出力できる。
※事前にpyyamlをインストールしておく。

python manage.py generateschema --file schema.yml

OpenAPIに対応しておくことは、クラウドのAPI関連サービスでも利用できる可能性が高く、またAPI仕様とコードの整合性を保ちやすい。

Djangoは出力されるバージョンが古い、あと、コンポーネント関連の出力がないのがマイナス。

このあたりが楽なのはFlask。
シンプルイズベスト。
コードから仕様よりは、仕様からコード生成の方が実用的。