环境介绍
laravel 5.5.* + php 7.2 + mysql 5.7.27
1. 创建 laravel 项目 (自行 配置一下域名 如果 不会 请参考 laravel 的第一篇文章 )
composer create-project --prefer-dist laravel/laravel=5.5.* laravel-dj
2. 引入 dingo 并 进行 部分 配置 (dingo 文档)
更改 compose.json 的 require 文件
"require": { "php": ">=7.0.0", "dingo/api": "2.1.0", "fideloper/proxy": "~3.3", "laravel/framework": "5.5.*", "laravel/tinker": "~1.0" }
使用 compose update 进行更新
composer update
发布 dingo
php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"
添加 部分配置到 .env 文件
API_PREFIX=/ API_STANDARDS_TREE=vnd API_SUBTYPE=dj API_VERSION=v1 API_NAME="dj API" API_CONDITIONAL_REQUEST=false API_STRICT=false API_DEFAULT_FORMAT=json API_DEBUG=true
3. 配置 先后台 接口分离 (例如 laravel-dj.com/admin 和 laravel-dj.com/front )
# 如果想配置 node1.larave-dj.com 和 node2.laravel-dj.com 接口访问 请参考 多域名使用
修改 RouteServiceProvider 的 map function
public function map() { // $this->mapApiRoutes(); $this->mapFrontApiRoutes(); $this->mapAdminApiRoutes(); $this->mapWebRoutes(); }
添加 mapFrontApiRoutes 方法 和 mapAdminApiRoutes
protected function mapFrontApiRoutes() { app('Dingo\Api\Routing\Router')->group([ 'version' => 'v1', 'prefix' => 'front', 'middleware' => 'api', 'namespace' => 'App\Http\Controllers\Api\Front', ], function ($api) { require base_path('routes/api/front.php'); }); }