首頁  >  文章  >  php框架  >  laravel中dingo是什麼

laravel中dingo是什麼

WBOY
WBOY原創
2022-02-23 16:39:392671瀏覽

在laravel中,dingo是針對laravel、lumen框架的api開發工具包;主要有路由版本管理、「Http Exception」異常處理和「Response Transform」轉換回應格式三個功能。

laravel中dingo是什麼

本文操作環境:Windows10系統、Laravel6版、Dell G3電腦。

laravel中dingo是什麼

dingo是針對laravel、lumen框架的api開發工具包。

粗看文件目錄,基於api規範,它圍繞了三個主要功能:

  • #路由版本管理

## Http Exception 異常處理

Response Transform 轉換回應格式

dingoapi是一個laravel的開源插件,可以在github上搜尋到,現在在做一個項目,專案中總是會有後端跟前端的json資料交互,而這個dingoapi為json交互提供了很大的便利。

路由版本控制

一、相關設定

1宣告api服務

api規範要求,介面開發要么帶有api前綴(http://XXX.com/api/xxx),要么是子網域(http://api.XXX.com/xxx),透過這樣的標識,代表請求的是api介面服務。

所以,API_PREFIX=api和API_DOMAIN=api.myapp.com必須設定其中一個。

.env可能需要配置的選項

當然它的作用並非只是個標識,我們知道dingo的路由與laravel的路由是共存的,dingo便是透過這個特徵來判斷的。

2版本控制

dingo提供了自己的路由服務,如果http://XXX.com/api/xxx或http://api.XXX. com/xxx訪問,它則認為是api請求,dingo路由服務Dingo\Api\Routing\Router會接管laravel自帶的路由服務Illuminate\Routing\Router(至於是如何接管的,之後再說),它同樣有get (),post(),match(),group()…方法,相當於另一套路由體系。

laravel區分版本的話,可能需要帶一個v1前綴,例如http://XXX.com/api/v1或http://XXX.com/api/v2。而dingo是透過 header頭Accept處理的。它的格式是Accept: application/vnd.YOUR_SUBTYPE.v1 json。意味著你需要發送一個accept的請求頭才能存取。在

設定檔中,預設這種模式是不強制的,API_STRICT=false,但只能存取設定檔中預設的版本,'version' => env('API_VERSION', 'v1') ,。

如果設定為true,也就是開啟嚴格模式,則必須傳送accept頭,不能透過瀏覽器直接存取你的 API。

.env可能需要設定的選項

API_STRICT=true //開啟嚴格模式必須不論v1,v2都必須帶著accept頭資訊

API_VERSION= v1 //在沒有宣告版本號碼時的預設版本號碼

若開啟嚴格模式關於header頭的accept屬性幾個選項:

###Accept: application/vnd.YOUR_SUBTYPE.v1 json######API_STANDARDS_TREE=x,prs,vnd Standards Tree 標準樹######API_SUBTYPE=myapp 子類型:程式或專案的短名稱######v11 :版本號######json:傳回的格式,也可以是jsonp#########.env可能需要設定的選項######API_STANDARDS_TREE=prs###### API_SUBTYPE=lara######API_DEFAULT_FORMAT=json //預設########【相關推薦:###laravel影片教學###】###

以上是laravel中dingo是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn