django-rest-swagger 可视化管理restful api

Admin 2018-12-27 14:43:45 Django

什么是django-rest-swagger?

用于Django REST框架的OpenAPI文档生成器,结合django-rest-framework可视化管理api。

环境需求

Python 2.7.15

Django 1.11.17

Django-rest-framework 3.9.0

Django-rest-swagger 2.2.0

安装

1
2
3
pip install django==1.11.17
pip install djangorestframework==3.9.0
pip install django-rest-swagger==2.2.0

配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# urls.py
 
from rest_framework_swagger.views import get_swagger_view
 
schema_view = get_swagger_view(title='YwFuns API')
v1_api_patterns = [
    url('v1/users/', include('User.api_urls', namespace='api-users')),
]
 
urlpatterns = [
  url('api/', include(v1_api_patterns)),
  url('api/docs/', schema_view, name="api-docs")
]
 
# settings.py
 
INSTALLED_APPS = (
  "rest_framework",
  "rest_framework_swagger",
  "..."
)
 
SWAGGER_SETTINGS = {
    'SECURITY_DEFINITIONS': {
        "basic":{
            'type''basic'
        }
    }
}
 
# User/api_urls.py
 
from django.conf.urls import include, url
from rest_framework import routers
from view import UserViewSet
 
route = routers.DefaultRouter()
route.register(r'users', UserViewSet, "user")
 
urlpatterns = [
   url(r'^', include(router.urls)),
   url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
 
# User/view.py
 
from User.models import User
from rest_framework import viewsets
from .serializers import UserSerializer
 
class UserViewSet(viewsets.ModelViewSet):
   queryset = User.objects.all().order_by('-last_login')
   serializer_class = UserSerializer
 
# User/serializers.py
 
from User.models import User
from rest_framework import serializers
 
class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('username''nickname''email')

运行测试

1
2
3
4
5
6
7
8
python manage.py runserver 0.0.0.0:8000
Performing system checks...
 
System check identified no issues (0 silenced).
December 27, 2018 - 14:15:05
Django version 1.11.17, using settings 'mysite.settings'
Starting development server at http://0.0.0.0:8070/
Quit the server with CONTROL-C.

访问:http://127.0.0.1:8000/api/docs/

1545892858222511.png

参考文档

相关文章
最新推荐