laravel中dingo是什么

laravel中,dingo是針對laravel、lumen框架的api開發(fā)工具包;主要有路由版本管理、“Http Exception”異常處理和“Response Transform”轉(zhuǎn)化響應格式三個功能。

laravel中dingo是什么

本文操作環(huán)境:Windows10系統(tǒng)、Laravel6版、Dell G3電腦。

laravel中dingo是什么

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

粗看文檔目錄,基于api規(guī)范,它圍繞了三個主要功能:

  • 路由版本管理

  • Http Exception 異常處理

  • Response Transform 轉(zhuǎn)化響應格式

dingoapi是一個laravel的開源插件,可以在github上搜索到,現(xiàn)在在做一個項目,項目中總是會有后端跟前端的json數(shù)據(jù)交互,而這個dingoapi為json交互提供了很大的便利。

路由版本控制

一、相關配置

1聲明api服務

api規(guī)范要求,接口開發(fā)要么帶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路由服務DingoApiRoutingRouter會接管laravel自帶的路由服務IlluminateRoutingRouter(至于是如何接管的,之后再說),它同樣有get(),post(),match(),group()…方法,相當于另一套路由體系。

laravel區(qū)分版本的話,可能需要帶上一個v1前綴,例如http://XXX.com/api/v1或者http://XXX.com/api/v2。而dingo是通過 header頭Accept處理的。它的格式是Accept: application/vnd.YOUR_SUBTYPE.v1+json。意味著你需要發(fā)送一個accept的請求頭才能訪問。

配置文件中,默認這種模式是不強制的,API_STRICT=false,但只能訪問配置文件中默認的版本,’version’ => env(‘API_VERSION’, ‘v1’),。

如果設置為true,即開啟嚴格模式,則必須發(fā)送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 子類型:程序或項目的短名稱

v1:版本號

json:返回的格式,也可以為jsonp

.env可能需要配置的選項

API_STANDARDS_TREE=prs

API_SUBTYPE=lara

API_DEFAULT_FORMAT=json //默認

【相關推薦:laravel視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享