django-rest-swagger對(duì)API接口注釋的方法
Swagger是一個(gè)API開發(fā)者的工具框架,用于生成、描述、調(diào)用和可視化RESTful風(fēng)格的Web服務(wù)??傮w目標(biāo)是使客戶端和文件系統(tǒng)服務(wù)器以同樣的速度來更新,方法,參數(shù)和模型緊密集成到服務(wù)器端的代碼中,允許API始終保持同步。
在使用 django-rest-framework 進(jìn)行API開發(fā),可以使用django-rest-swagger接入swagger自動(dòng)生成接口文檔。
1. 安裝django-rest-swagger
pip install django-rest-swagger
2.配置settings.py
INSTALLED_APPS = [ ... 'rest_framework_swagger' ... ]
3. views.py
該博文的項(xiàng)目是django-rest-framework中文站點(diǎn)的例子:https://q1mi.github.io/Django-REST-framework-documentation
當(dāng)需要對(duì)接口的各種方法進(jìn)行注釋時(shí),直接在該類下添加注釋,如下所示。需要注意是的:注釋的方法名稱(如 get、post)要對(duì)應(yīng)該類所含的方法名稱
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') ... ]
運(yùn)行manage.py后,瀏覽器訪問 http://127.0.0.1:8000/,可以看到以下內(nèi)容:

訪問 http://127.0.0.1:8000/docs/,可以看到接口文檔如下:

點(diǎn)擊打開snippets,可以看到如下,每個(gè)方法后面都有你在views.py中添加的注釋

點(diǎn)擊打開get方法,如下

以上這篇django-rest-swagger對(duì)API接口注釋的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python實(shí)現(xiàn)二終端網(wǎng)絡(luò)可靠度
這里給大家分享的是實(shí)現(xiàn)二終端網(wǎng)絡(luò)可靠度的方法以及使用Python實(shí)現(xiàn)的代碼,有需要的小伙伴可以參考下。2021-05-05
Python利用代碼計(jì)算2個(gè)坐標(biāo)之間的距離
這篇文章主要介紹了Python利用代碼計(jì)算2個(gè)坐標(biāo)之間的距離,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
Python中字節(jié)數(shù)組和16進(jìn)制字符串轉(zhuǎn)換方式
這篇文章主要介紹了Python中字節(jié)數(shù)組和16進(jìn)制字符串轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
OpenCV學(xué)習(xí)之圖像的分割與修復(fù)詳解
圖像分割本質(zhì)就是將前景目標(biāo)從背景中分離出來。在當(dāng)前的實(shí)際項(xiàng)目中,應(yīng)用傳統(tǒng)分割的并不多,大多是采用深度學(xué)習(xí)的方法以達(dá)到更好的效果。本文將詳細(xì)介紹一下OpenCV中的圖像分割與修復(fù),需要的可以參考一下2022-01-01
Python編程調(diào)用百度API實(shí)現(xiàn)地理位置經(jīng)緯度坐標(biāo)轉(zhuǎn)換示例
這篇文章主要介紹了Python編程調(diào)用百度API來實(shí)現(xiàn)地理位置經(jīng)緯度坐標(biāo)轉(zhuǎn)換的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10
Python的Django應(yīng)用程序解決AJAX跨域訪問問題的方法
針對(duì)Django中在編寫供AJAX調(diào)用的API時(shí)碰到的跨域問題,我們來總結(jié)下Python的Django應(yīng)用程序解決AJAX跨域訪問問題的方法,其中使用GitHub上開源分享的django-cors-headers尤其推薦2016-05-05
Python中threading.Timer()定時(shí)器實(shí)現(xiàn)定時(shí)任務(wù)
本文主要介紹了Python中threading.Timer()定時(shí)器實(shí)現(xiàn)定時(shí)任務(wù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01

