超好用的API工具-Swagger

濤哥聊Python發表於2019-01-19

image

今天給大家介紹一個日常開發中用到的工具Swagger,swagger是一個RESTful文件生成工具。

官方描述是 「The Best APIs are Built with Swagger Tools」 很是霸氣。

Swagger可以用在多個語言框架中,比如Python下面flask框架有「flask-restful-swagger」,Django框架「django-rest-swagger」,甚至tornado也有了只是使用量比起前兩者少多了。

由於swagger功能強大,整合工具非常之多,今天我們主要了解swagger-ui。

為什麼使用swagger-ui

程式界裡面經常傳這樣一句話,程式設計師最討厭的兩件事:

1.寫註釋寫文件 2.別人不寫註釋、不寫文件。

為什麼這樣說?因為管理文件註釋比較麻煩,經常會出現API更新了,文件還是老的,各種同步不一致的情況。造成很多問題,從而耽擱彼此的時間,所以大家不太喜歡進行寫文件註釋。

而之所以使用swagger主要是swagger它可以降低我們前後端開發文件同步問題,swagger可以從我們程式碼註釋裡面自動生成API文件,以此方便前端對接使用。

其次它可以展示我們所有介面列表情況,非常方便我們前後端進行介面除錯。前端同學對接介面直接在頁面就能操作了,完全不需要在postman,PAW這些網路工具進行切換,非常簡單方便。

下面我來一個官方的預覽圖資料表定義:

image

Django swagger安裝使用

接下來我們就來就來講下安裝使用過程,由於我們主要是Python為主,大家介紹swagger-ui,這裡面我們簡單Django為主介紹下使用:

pip install django-rest-swagger 要求: Django 1.8+ Django REST framework 3.5.1+ Python 2.7, 3.5, 3.6

在 INSTALLED_APPS

    INSTALLED_APPS = (
        ...        'rest_framework_swagger',
    )
複製程式碼

新增文件地址:

from django.conf.urls import urlfrom rest_framework_swagger.views import get_swagger_view

schema_view = get_swagger_view(title='Pastebin API')

test_urlpatterns = [
    url(r'^$', schema_view)  # 這兒你自定義文件目錄]#這裡面我們需要注意這兒在本地或者測試環境使用,線上不能使用,最簡單的辦法就是我之前提到過的的,通過環境變數來進行判斷當前環境從而是否加上這個test_urlpatterns。if current_env not in ['product', 'staging']:
    url_patterns = url_patterns + test_urlpatterns
複製程式碼

最後得到的效果就是類似的效果:

image

如果配合Django-filter,會更加方便進行前端篩選測試,幾乎是對於XXX管理頁面就是舉手之間。swagger配合Django-REST-Framework可以說大大提高了後端寫增刪查改(CRUD)並且對接完成的速度。

其他語言使用

swagger不僅Python使用,其他語言框架都能進行使用swagger。推薦大家去使用,不管是否是Python程式設計師。

其他語言工具整合的地址:https://swagger.io/tools/open-source/open-source-integrations/

image

不清楚還有多少公司,每次API更新了,文件沒有更新,造成對接起來彼此不一致的情況,反正聽到過身邊的朋友反饋過。

如果你發現自己公司有這種情況,趕緊swagger一把梭。

上面就是我對swagger-ui的介紹,實際swagger tools 還有其他兩個功能強大的工具 swagger-editor,swagger-codegen。大家感興趣可以自己去了解。

image

相關文章:

容器化部署實踐之Django應用部署(二)

使用Docker容器化部署實踐之Django應用部署(一)

Python web開發從入門到放棄

編寫高質量Python的6個技巧

Python新手常見的幾個問題及工具推薦

image

相關文章