laravel中的dingo有什么作用

這篇文章主要介紹“l(fā)aravel中的dingo有什么作用”,在日常操作中,相信很多人在laravel中的dingo有什么作用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”laravel中的dingo有什么作用”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供海西網(wǎng)站建設(shè)、海西做網(wǎng)站、海西網(wǎng)站設(shè)計(jì)、海西網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、海西企業(yè)網(wǎng)站模板建站服務(wù),10余年海西做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

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

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

laravel中dingo是什么

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

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

  • 路由版本管理

  • Http Exception 異常處理

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

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

路由版本控制

一、相關(guān)配置

1聲明api服務(wù)

api規(guī)范要求,接口開發(fā)要么帶api前綴(http://XXX.com/api/xxx),要么是子域名(http://api.XXX.com/xxx),通過這樣的標(biāo)識,代表請求的是api接口服務(wù)。

所以,API_PREFIX=api和API_DOMAIN=api.myapp.com須設(shè)置其中一個(gè)。

.env可能需要配置的選項(xiàng)

當(dāng)然它的作用并非只是個(gè)標(biāo)識,我們知道dingo的路由與laravel的路由是共存的,dingo便是通過這個(gè)特征來判斷的。

2版本控制

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

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

配置文件中,默認(rèn)這種模式是不強(qiáng)制的,API_STRICT=false,但只能訪問配置文件中默認(rèn)的版本,'version' => env('API_VERSION', 'v1'),。

如果設(shè)置為true,即開啟嚴(yán)格模式,則必須發(fā)送accept頭,不能通過瀏覽器直接訪問你的 API。

.env可能需要配置的選項(xiàng)

API_STRICT=true //開啟嚴(yán)格模式必須不論v1,v2都須帶上accept頭信息

API_VERSION=v1 //在沒有聲明版本號時(shí)的默認(rèn)版本號

若開啟嚴(yán)格模式

關(guān)于header頭的accept屬性幾個(gè)選項(xiàng):

Accept: application/vnd.YOUR_SUBTYPE.v1+json

API_STANDARDS_TREE=x,prs,vnd Standards Tree 標(biāo)準(zhǔn)樹

API_SUBTYPE=myapp 子類型:程序或項(xiàng)目的短名稱

v1:版本號

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

.env可能需要配置的選項(xiàng)

API_STANDARDS_TREE=prs

API_SUBTYPE=lara

API_DEFAULT_FORMAT=json //默認(rèn)

到此,關(guān)于“l(fā)aravel中的dingo有什么作用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

分享名稱:laravel中的dingo有什么作用
URL地址:http://bm7419.com/article18/iihidp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊App開發(fā)、企業(yè)建站、品牌網(wǎng)站建設(shè)、虛擬主機(jī)、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)