Published on

DjangoでAPIドキュメントを自動生成しよう

Authors

開発している家計簿アプリSUMUMAのAPIとAPIドキュメントを公開しました。 ドキュメントはSwaggerとRedocの2種類で公開しています。 Swagger SUMUMA API Redoc SUMUMA API

APIとドキュメントの公開には、Django Rest Frameworkdrf-yasgを使いました。

Django Rest Framework

Django Rest Framework(以下DRFで表記)は、DjangoアプリでAPIを提供するためのパッケージです。DjangoでAPIを実装するときに、必ずと言っていいほど使われています。

https://www.django-rest-framework.org/

DRFはOpenAPIという、RESTful APIを定義するためのフォーマットをサポートしています。OpenAPIを元にAPIドキュメントを生成することもできます。

DRFのドキュメントには、パッケージを使わずにAPIドキュメントを作成できる方法が紹介されていますが、認証やUIなどの設定項目が多いためdrf-yasgというパッケージを利用して簡単にドキュメントを自動生成していきます。

drf-yasg

drf-yasgはDRFでAPIドキュメントを生成することができるサードパーティパッケージです。Swagger UIとしてドキュメントを生成でき、Redocもサポートされています。

設定は容易で、APIドキュメントのルーティングとドキュメントの情報を付加するだけです。 アクセス制限や認証、パーミッションの設定も可能です。

Swagger UI スクリーンショット 2023-04-16 23.47.44.png

Redoc スクリーンショット 2023-04-16 23.53.31.png

APIクライアントも生成

drf-yasgはSwagger Codegenもサポートしているため、APIクライアントの自動生成も可能です。サポートしている言語も豊富なため、開発に利用しやすいこととプロダクトのスケールにも活用できます。

スキーマ駆動を検討している方はぜひご検討ください。