如何在Django REST框架中使用Swagger API

優質文章,第一時間送達!

如何在Django REST框架中使用Swagger API

在本教程的這裡,我將向您展示如何在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.views

import

get_swagger_view

/<code><code>

/<code><code>

schema_view = get_swagger_view(title=

'User API'

)

/<code><code>

/<code><code>

urlpatterns = [

/<code><code>

url(

'^

/<code>


分享到:


相關文章: