dingo/api 是一個 Lumen 和 Laravel 都可用的 RestFul 工具包,幫助我們快速的開始構建 RestFul Api。參考文檔地址:https://github.com/dingo/api/
第一步:安裝dingo/api
composer require dingo/api

第二步:編譯配置文件
php artisan vendor:publish
第三步:編輯生成的api.php
1、API_STANDARDS_TREE 值說明:
未注冊的樹(x)主要表示本地和私有環境
私有樹(prs)主要表示沒有商業發布的項目
供應商樹(vnd)主要表示公開發布的項目
如果你不確定該如何選擇,x 樹或者說未注冊樹都是安全的。
2、API_SUBTYPE=myapp
子類型通常是應用程序或項目的短名稱,都是小寫的。
3、前綴和子域:
如果你曾經使用過 API 你就會知道大多數服務都來自子域或前綴。前綴或子域是必須的,但只需要一個。請避免使用版本號作為你的前綴或子域,因為版本控制是通過 header 頭 Accept 處理的
1)前綴:API_PREFIX=api
2)子域:API_DOMAIN=api.myapp.com
4、版本號 : API_VERSION=v1
這個版本號是你的 API 的默認版本號,並且會在一些未提供版本號的情況下作為回調的默認值使用。在生成 API 文檔時也會使用這個版本號作為默認值。
5、名稱:API_NAME=My API
你的 API 的名稱只會在你使用 API Blueprint 命令生成文檔的時候使用。使用此名稱可以避免你每次生成文檔的時候都必須手動定義名稱。
6、條件請求 API_CONDITIONAL_REQUEST=false 【你可以在你的 .env 文件中將其配置為關閉】
『條件請求』默認為開啟狀態,這有利於客戶端的緩存機制在可能的情況下緩存 API 請求。
7、嚴格模式:API_STRICT=false
嚴格模式要求客戶端發送 Accept 頭,代替配置文件中配置的默認版本。這意味着你將不能通過瀏覽器直接訪問你的 API。
如果開啟嚴格模式,發送非法的 Acceept 標頭會拋出一個未處理的異常 Symfony\Component\HttpKernel\Exception\BadRequestHttpException ,你需要自己處理這個異常。
8、響應格式 :API_DEFAULT_FORMAT=json
默認的響應格式是 JSON,並有一個 JSON 響應格式是被默認注冊。
你可以在 .env 文件中配置默認的響應格式。更進一步的響應格式配置需要在一個 published 的配置文件,服務提供器,或是 bootstrap 文件中。
9:錯誤格式
當包遇到錯誤時,它會嘗試生成一個通用的錯誤響應,而不是將異常轉儲給用戶。 它使用的錯誤格式可以根據自己的喜好進行配置。
您必須在已發布的配置文件或引導程序文件中對其進行配置。
$app['Dingo\Api\Exception\Handler']->setErrorFormat([
'error' => [
'message' => ':message',
'errors' => ':errors',
'code' => ':code',
'status_code' => ':status_code',
'debug' => ':debug'
]
]);
10、調試模式:API_DEBUG=true
該包處理的通用錯誤包括一個 debug 鍵,當啟用這個鍵時,將會填充堆棧跟蹤詳細信息。你可以在 .env 文件中配置它。
