優質文章,第一時間送達!
在本教程的這裡,我將向您展示如何在Django REST框架中使用Swagger API。Swagger API為REST API端點提供了結構良好的文檔,因此新手可以說如何在不瞭解其內部實現的情況下測試REST API。
本質上,Swagger做的是簡單但非常強大的事情:通過添加一些附加註釋,它會生成REST API描述,例如HTTP方法,路徑/查詢/表單參數,響應,HTTP錯誤代碼等),甚至提供了一個簡單的Web UI來對您的API的REST調用。
Swagger規範是描述RESTful API的強大定義格式,它創建RESTful接口,通過有效地映射與之關聯的所有資源和操作來輕鬆開發和使用API。它易於學習,與語言無關,並且可以人工和機器可讀。
先決條件
Python 3.8.5,Django 3.0.8,REST框架(pip install djangorestframework),Swagger(pip install django-rest-swagger)
假定您已經在系統上安裝並配置了Python。
下一個任務是安裝Django。首選方法是使用命令pip install Django進行安裝。您可以閱讀有關Django安裝的更多詳細信息。
我們將使用MySQL數據庫服務器作為存儲數據的持久系統,因此您需要閱讀教程,瞭解如何使用django設置MySQL以執行SQL語句。
另外,您需要使用命令pip install django-rest-swagger安裝Swagger模塊。
我建議您先閱讀Django MySQL REST CRUD API示例教程,然後再繼續學習。因為此示例恰好遵循該教程。在此示例中,除了REST API CRUD示例之外,我還添加了Swagger API。
在本示例中,我將不展示項目的每個部分,因為我將與現有項目一起工作,但是我將介紹重要的更改。您以後總是可以從本教程底部的鏈接從我的Github帳戶下載完整的項目。
項目設置
我們需要做的第一件事是創建項目目錄。項目名稱為djangomysqlrestcrudswagger,我們將使用以下命令創建該項目。
<code>django-admin startproject djangomysqlrestcrudswagger
/<code>
下一步是在項目內部創建一個應用程序以執行CRUD操作。使用以下命令創建一個名為restcrudswagger的應用程序。
<code>django-admin startapp restcrudswagger
/<code>
現在,我們需要將此restcrudswagger應用程序添加到項目中。因此,編輯文件djangomysqlrestcrudswagger / djangomysqlrestcrudswagger / settings.py並將以下行添加到INSTALLED_APPS部分:
<code>INSTALLED_APPS
= [/<code><code>...
/<code><code>
'rest_framework_swagger'
,/<code><code>
'restcrudswagger.apps.RestcrudswaggerConfig'
,/<code><code>]
/<code>
上一行是使用文件djangomysqlrestcrudswagger / restcrudswagger / apps.py構成的。您將在此文件中看到名為=’restcrudswagger’的RestcrudswaggerConfig類。
您需要將以下行添加到上述文件(settings.py)中,否則您將看到錯誤“ /’AutoSchema’對象的AttributeError沒有屬性’get_link’”。
<code>REST_FRAMEWORK
= {'DEFAULT_SCHEMA_CLASS'
:'rest_framework.schemas.coreapi.AutoSchema'
}
/<code>
URLS
接下來,我將更改URL方案以添加用於REST文檔的Swagger API。將以下代碼寫入文件 djangomysqlrestcrudswagger / djangomysqlrestcrudswagger / urls.py中。
<code>from
rest_framework_swagger.viewsimport
get_swagger_view/<code><code>/<code><code>schema_view = get_swagger_view(title=
'User API'
)/<code><code>/<code><code>urlpatterns = [
/<code><code>url(
'^
/<code>
關鍵字: django restcrudswagger 表單