くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Django REST Framework+SwaggerでAPIドキュメント自動生成

Django REST FrameworkにSwaggerを簡単に入れれるらしいので試してみたときの備忘録。

インストール

とりあえず、pipでインストール

$ pip install django-rest-swagger

あわせて、settings.pyにも追加&設定

INSTALLED_APPS = (
    ...
    'rest_framework',
    'rest_framework_swagger',
)

# 認証ありのAPIもSwaggerUIから使えるように、`LOGIN_URL`とか`DEFAULT_AUTHENTICATION_CLASSES`を設定
LOGIN_URL = 'rest_framework:login'
LOGOUT_URL = 'rest_framework:logout'

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.BasicAuthentication',
    ),
}

URLマッピングを追加

SwaggerUIへのパスをurls.pyに追加。
認証のURLも合わせて追加しておく。

from rest_framework_swagger.views import get_swagger_view

schema_view = get_swagger_view(title='API Lists')
urlpatterns += [
    url(r'^swagger/', schema_view),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

あとは、ブラウザからアクセスするだけ!

http://localhost:8080/swaggerにアクセスすると、APIViewとかからドキュメントを作ってくれます!

便利!

参考にしたサイト様