laravel version: 5.5.*php
爲何不用 laravel 自帶的 response
? 原生的 response
可能不夠強大,可能不夠方便,也可能我的喜愛問題,總之, 我仍是比較喜歡 dingo api
laravel
composer create-project laravel/laravel=5.5.* --prefer-dist ./dingo
composer require dingo/api
php artisan vendor:publish
詳細解釋請看這裏github
API_STANDARDS_TREE=vnd API_SUBTYPE=study API_PREFIX= API_DOMAIN=api.study.io API_VERSION=v1 API_NAME=study API_CONDITIONAL_REQUEST=false API_STRICT=false API_DEFAULT_FORMAT=json
示例json
$api = app('Dingo\Api\Routing\Router'); $api->version('v1', ['middleware' => 'enableCrossRequests'], function ($api) { $api->group(['namespace' => '\App\Http\Controllers\Api'], function ($api) { /** * 註冊 */ $api->post('/register', 'UsersController@register'); /** * 登錄 */ $api->post('/login', 'UsersController@captcha'); }); });
這條線如下的是可選操做,純屬我的喜愛api
namespace App\Http\Controllers\Api; use Dingo\Api\Routing\Helpers; class BaseController extends Controller { use Helpers; /** * 快速響應一個json格式的字符串 * @param string $message 詳細信息 * @param array $data 響應的數據 * @param int $responseCode 響應狀態碼 * @return mixed */ public function jsonResponse(string $message = '', array $data = [], int $responseCode = 200) { return $this->response->array([ 'message' => $message, 'data' => $data ])->setStatusCode($responseCode); } }