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

- Name
- nisyuu (にしゅう)
- @nishilyuu
開発している家計簿アプリSUMUMAのAPIとAPIドキュメントを公開しました。 ドキュメントはSwaggerとRedocの2種類で公開しています。 Swagger SUMUMA API Redoc SUMUMA API
APIとドキュメントの公開には、Django Rest Frameworkとdrf-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 
Redoc 
APIクライアントも生成
drf-yasgはSwagger Codegenもサポートしているため、APIクライアントの自動生成も可能です。サポートしている言語も豊富なため、開発に利用しやすいこととプロダクトのスケールにも活用できます。
スキーマ駆動を検討している方はぜひご検討ください。