当前位置: 首页 > 编程笔记 >

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

朱自明
2023-03-14
本文向大家介绍django-rest-swagger对API接口注释的方法,包括了django-rest-swagger对API接口注释的方法的使用技巧和注意事项,需要的朋友参考一下

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/,可以看到以下内容:

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

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

点击打开get方法,如下

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

 类似资料:
  • 我用ImageField创建了一个简单的模型,我想用django-rest-framework+django-rest-swagger创建一个api视图,它是文档化的,并且能够上传文件。 以下是我得到的: 我阅读了django-rest-framework中的这部分文档: 我正在使用、和。

  • 为了使用web服务,我们首先需要创建它。我们使用Flask(http://flask.pocoo.org),一个基于python创建简单的颜色web服务的HTTP服务器应用。你也可以使用其它的web服务器,只要它接收和返回JSON数据。通过web服务来管理一组已经命名的颜色。在这个例子中,管理意味着CRUD(创建-读取-更新-删除)。 在Flask中一个简单的web服务可以写入一个文件。我们使用一

  • 本文向大家介绍django-rest-swagger的优化使用方法,包括了django-rest-swagger的优化使用方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 参考英文文档: http://django-rest-swagger.readthedocs.io/en/latest/ 使用swagger工具结合Django-rest-framework进行restful API的管

  • 问题内容: 我无法弄清楚能够注释Java接口的用例。 也许有人可以给我一个例子? 问题答案: 我在Spring中使用它来注释接口,其中注释应应用于所有子类。例如,假设您有一个Service接口,并且您可能具有该接口的多个实现,但是无论是否有注释,都希望应用安全注释。在这种情况下,对接口进行注释最有意义。

  • 我目前正在尝试向我的REST API添加一个新功能。 基本上,我想添加在路径末尾添加查询参数的功能,并将其转换为所有查询选项的映射,例如。 我当前的代码允许我做这样的事情 这将使用所有@pathparam作为字符串变量来生成响应。 我现在想做的是添加: 然后我会让它生成一个映射,可以和pathparam一起用来构建响应 我在想这样的事情[下图]然而@QueryParam似乎只处理一个键值,而不是它

  • 我有这个接口: 接口的这个实现: