利用yii2和swagger打造完美的RestFul Api接口

2021-01-15 編程職場

本文將按照完全真實的操作流程進行寫作!技術人員照著此文,可以直接搭建一個yii2和swagger結合的RestFul風格的API接口平臺!

第一步:本地搭建yii2項目(以basic基礎項目為準)

php composer.phar create-project yiisoft/yii2-app-basic basic -vvv

運行以上命令,用composer安裝的方式,在本地搭建一個yii2項目。(安裝composer和本地站點配置這裡就不作細述了)

比如我們的項目地址為:yii2basic.my.com

第二步:下載yii2-swagger包

php composer.phar require --prefer-dist light/yii2-swagger "~1.0.4" -vvv

第三步:準備工作

為了後面swagger的使用能按照設想順利進行,我們在這個地方先做好幾項準備工作

1、url美化。我們不希望url在訪問時,還需要輸入index.php這樣的結構,而是希望直接訪問 控制器名/方法名 這樣的結構,所以,我們需要配置:

config下面的web.php裡面的components組件:

'urlManager' => [

'enablePrettyUrl' => true,

'showScriptName' => false,

'rules' => require(__DIR__ . '/route.php'),

],

順帶著,我們還在config目錄下新建一個route.php文件,專用用來存放路由。這個文件怎麼寫?最後給個參考!

2、輸出格式化。接口的目的就是return回信息的,我們需要配置返回信息的格式默認都是json格式。

config下面的web.php裡面的components組件:

'response' => [

'format' => 'json'

],

3、新建一個module專門用來寫API接口(當然,並不是必須要新建一個模塊,但是新建一個單獨的模塊,更清晰更好管理)

我們直接用gii來新建:

瀏覽器訪問http://yii2basic.my.com/gii

進入頁面-》選擇Module Generator-》

好,做完這三步,現在我們的準備工作基本好了!

第四步:建立swagger的入口文件和信息文件

我們在項目的controllers目錄下新建一個與默認的SiteController.php同級的SwaggerControll.php文件

swagger還需要一個配置文件,才能保證在讀取信息時,不出錯。因為,上圖中,我們只讓swagger到v1下面的controllers下面去掃描。所以,我們就把swagger的配置文件放在v1/controllers下面,取名swagger.php

現在,你訪問http://yii2basic.my.com/swagger 這個連結,就能看到swagger的接口頁面了。只是,我們現在還沒有寫接口。好,那我們現在就開始寫一個接口來看看。

第五步、開始寫接口並且為每個接口做路由配置

還是上面說的,我們只配置了swagger掃描api/controllers這個目錄下的文件。所以,我們還是把接口文件寫在api/controllers目錄下。

就舉例叫UserController.php

現在,我們接口也寫好了,按道理是可以訪問的了,但是我們還需要配置下路由,以便更加健壯和兼容性好!還記得,我上面說的那個順帶在config目錄下建立的route.php文件吧。現在開始寫它!

好,現在,我們可以再Swagger的界面,直接操作接口了!

相關焦點

  • 如何設計restful風格接口
    restful風格接口URL定位資源,用HTTP動詞(GET,POST,DELETE,DETC)描述操作。識別(identify)、 表示(represent) 、交互(interact with)。看Url就知道要什麼看http method就知道幹什麼看http status code就知道結果如何1.
  • RESTful API簡述
    概述寫出一個好的API接口不是一件簡單的事情,那麼如何寫出一個好的API接口就是一個比較棘手的問題,目前RESTFUL是最流行的API接口設計規範REST是Roy Thomas Fielding博士於2000年提出來的一種全球資訊網軟體架構風格,目的是便於不同軟體/程序在網絡中互相傳遞信息,從其誕生之日開始,它就因其可擴展性和簡單性受到越來越多的架構師和開發者們的青睞
  • tp5.1的RestApi風格接口
    最近在一個thinkphp的項目,想著目前一直很流行的restful接口風格的api接口,就嘗試用tp5.1的restful接口風格寫了一套demo示例,並包括版本控制的接口示例,demo項目可以通過gitee或github下載。
  • Restful Api-接口設計
    RESTful API特徵 (1) 每一個uri代表一種資源; (2) 客戶端和伺服器之間,傳遞這種資源的某種表現層; (3) 客戶端通過四個HTTP動詞(GET獲取資源 POST(CREATE)創建資源 PATCH(UPDATE)更新資源的部分屬性(很少用,一般用POST代替) PUT(UPDATE)更新資源,客戶端需要提供新建資源的所有屬性 DELETE(DELETE)刪除資源使用方式 GET http://www.birjemin.com/api
  • Swagger天天用,但它背後的實現原理很多人都不知道!
    先說一說Springfox和Swagger的關係Swagger 是一種規範。springfox-swagger 是基於 Spring 生態系統的該規範的實現。springfox-swagger-ui 是對 swagger-ui 的封裝,使得其可以使用 Spring 的服務。
  • 理解RESTful API 架構設計規範與實踐
    例如:https://www.sample.com/api/shops/10083 - 編號10083店鋪的基本信息https://www.sample.com/api/users/2372/orders - 編號2372用戶的所有訂單信息在標準的 REST 規範觀點中,通常會要求將資源 shop 加上複數形式 s 表示多個資源。
  • 這後端API接口寫得才叫一個優雅!網友直呼:666
    因為老顧這篇主要介紹的是API接口,所以我們聚焦點,其他的模塊小夥伴們自行去補充。 接口交互 前端和後端進行交互,前端按照約定請求URL路徑,並傳入相關參數,後端伺服器接收請求,進行業務處理,返回數據給前端。
  • Rocket-API 2.3.2 發布,基於 spring boot 的 API 敏捷開發框架
    功能新增或修改: 遠程部署重複判斷 添加mongo對象操作函數 mapping路徑匹配修改,解決restful
  • restful微服務風格_restful 風格的微服務架構 - CSDN
    本文整理了 spring boot + jpa+mysql+redis +swagger+yml等技術,實現了微服務restFul 風格的demo,下載即運行[http://localhost:8080/
  • 關於RESTful API安全
    隨著手機和移動網際網路的興起,REST(Representational State Transfer,表現層狀態傳輸)架構逐漸流行起來,被廣泛地使用。REST這個名稱是Roy Fielding在美國加州UC Irvine大學的畢業博士論文中引入和定義的。
  • 分享幾個在線生成網址二維碼的API接口
    想要實現這樣的功能其實很簡單,下面麥布分享幾個在線生成網址二維碼的API接口。都是採用http協議接口,無需下載安裝什麼軟體,可簡單方便地引用,這才是最簡單、最便捷的免費網址二維碼生成工具。url=http://www.54admin.net        4.http://qr.liantu.com/api.php?
  • obgame分享:電競LOL數據API接口-API調用
    分享使用 OBGAME電競數據 接口調用的示例代碼,接的是英雄聯盟的【選手基本信息】接口.接口請求地址:http://api.xxe.io/?LCK分為春季賽和秋季賽,", "match_num": "8", "match_sorting": "2", "match_type": "2", "match_bonus": "1億韓元", }, { "match_id": "103",
  • RESTful風格/RESTful Api/RESTful 架構?
    尊敬的讀者,記得加關注、點讚喲,您的認可是我最大的動力,謝謝RESTful是一種軟體架構風格、設計風格,不是標準,它只是提供了一組設計原則和約束條件。下面來了解一下RESTful風格是什麼?過濾資源可以通過URI後綴來區分數據格式URI中避免使用動詞遵循統一接口原則對資源的CRUD(create, read, update和delete,即數據的增刪查改)操作,分別使用HTTP對應的方法,:GET(READ):從伺服器獲取資源;POST(CREATE):從伺服器新建一個資源;PUT(UPDATE):在伺服器更新資源;
  • IntelliJ IDEA 的這個接口調試工具真是太好用了!
    工作照常幹,領導需要幾個新功能接口開發。以前在公司辦公,通常開發完的功能沒什麼問題,暴露出 Swagger 接口文檔,直接找旁邊的前端大人聯調測試了。當下,君在長江頭,我在長江尾,夜夜思君不敢出門見君啊,一切測試全交給自己吧:雖然想念前端,但是在家辦公也絕對是和在公司辦公一樣一樣的,高效不(qu)摸魚。
  • RESTful-API還沒理解麼?只是因為你沒看這篇文章,其實它很簡單
    REST(Representational State Transfer)決定了接口的形式與規則。RESTful是基於http方法的API設計風格,而不是一種新的技術.要達到的效果就是:看URI就知道需要什麼資源看http method方法就知道針對資源做什麼動作看http 狀態碼就知道動作的結果如何對接口開發提供了一種可以廣泛適用的規範,為前端後端交互減少了接口交流的口舌成本,是約定大於配置的體現。
  • 利用NASA的數據接口製作國際空間站實時跟蹤器
    它的目的是將 NASA(美國國家航空航天局)的一些數據開放為簡單的編程接口。open-notify.org 的作者做了一些工作,以獲取原始數據並將其轉換為與太空和太空飛行器有關的API。幸運的是open-notify確實提供了這樣的接口。
  • JApiDocs真香:以後再也不想用Swagger了
    ① 執行 TestJApiDocs 類,生成 JApiDocs 接口文檔。結果如下圖所示:生成結果② 點擊 index.html 文件,查看 HTML 接口文檔。如下圖所示:HTML 接口文檔後續,我們可以部署到 Nginx 下,提供給前端小夥伴查看接口文檔。
  • 面試官:你連 RESTful 都不知道我怎麼敢要你?|原力計劃
    實際上在工作中對api接口規範、命名規則、返回值、授權驗證等進行一定的約束,一般的項目api只要易測試、足夠安全、風格一致可讀性強、沒有歧義調用方便我覺得已經足夠了,接口是給開發人員看的,也不是給普通用戶去調用。