欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

django-rest-swagger对API接口注释的方法

程序员文章站 2023-11-29 19:21:22
swagger是一个api开发者的工具框架,用于生成、描述、调用和可视化restful风格的web服务。总体目标是使客户端和文件系统服务器以同样的速度来更新,方法,参数和模...

swagger是一个api开发者的工具框架,用于生成、描述、调用和可视化restful风格的web服务。总体目标是使客户端和文件系统服务器以同样的速度来更新,方法,参数和模型紧密集成到服务器端的代码中,允许api始终保持同步。

在使用 django-rest-framework 进行api开发,可以使用django-rest-swagger接入swagger自动生成接口文档。

1. 安装django-rest-swagger

pip install django-rest-swagger

2.配置settings.py

installed_apps = [
 ...

 'rest_framework_swagger'

 ...
]

3. views.py

该博文的项目是django-rest-framework中文站点的例子:https://q1mi.github.io/django-rest-framework-documentation

当需要对接口的各种方法进行注释时,直接在该类下添加注释,如下所示。需要注意是的:注释的方法名称(如 get、post)要对应该类所含的方法名称

class snippetlist(generics.listcreateapiview):
 """
 get:
 return all snippets.
 post:
 create a new snippet instance.
 """

 queryset = snippet.objects.all()
 serializer_class = snippetserializer
 permission_classes = (permissions.isauthenticatedorreadonly,)

 def perform_create(self, serializer):
 serializer.save(owner=self.request.user)


class snippetdetail(generics.retrieveupdatedestroyapiview):
 """
 get:
 return a snippet instance.
 put:
 update a snippet instance.
 patch:
 update a snippet instance.
 delete:
 delete a snippet instance.
 """
 queryset = snippet.objects.all()
 serializer_class = snippetserializer
 permission_classes = (permissions.isauthenticatedorreadonly, isownerorreadonly,)


class userlist(generics.listapiview):
 """
 get:
 return all users
 """
 queryset = myuser.objects.all()
 serializer_class = userserializer


class userdetail(generics.retrieveapiview):
 """
 get:
 return a user instance
 """
 queryset = myuser.objects.all()
 serializer_class = userserializer


class snippethighlight(generics.genericapiview):
 """
 get:
 return a highlight instance
 """
 queryset = snippet.objects.all()
 renderer_classes = (renderers.statichtmlrenderer,)

 def get(self, request, *args, **kwargs):
 snippet = self.get_object()
 return response(snippet.highlighted)

3.配置urls.py

from rest_framework.schemas import get_schema_view
from rest_framework_swagger.renderers import swaggeruirenderer, openapicodec
schema_view = get_schema_view(title='api', renderer_classes=[swaggeruirenderer, openapicodec])

urlpatterns = [
 
 ...

 url(r'docs/', schema_view, name='docs')

 ...
]

运行manage.py后,浏览器访问 http://127.0.0.1:8000/,可以看到以下内容:

django-rest-swagger对API接口注释的方法

访问 http://127.0.0.1:8000/docs/,可以看到接口文档如下:

django-rest-swagger对API接口注释的方法

点击打开snippets,可以看到如下,每个方法后面都有你在views.py中添加的注释

django-rest-swagger对API接口注释的方法

点击打开get方法,如下

django-rest-swagger对API接口注释的方法

以上这篇django-rest-swagger对api接口注释的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。