1、在laravel的根目录的composer.json 文件中引入
"dingo/api": "1.0.*@dev"
composer update
3.注册服务提供者
在config/app.php注册到 providers 数组:
Dingo\Api\Provider\LaravelServiceProvider::class,
4.生成dingo/api 的配置文件
php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"
这时在config 的目录下会出现一个api 的文件
打开里面的文件 你会发现里面的配置都是使用env函数进行读取的
所以相关的所有配置你都可以写在.env 文件中进行配置
一下常规的配置
API_STANDARDS_TREE=vnd // 环境
API_SUBTYPE=myapp // 子类型
API_PREFIX=api // 前缀
API_DOMAIN=api.myapp.com //子域名 (前缀和子域名只能存在一个)
API_VERSION=v1 // 版本
API_NAME=My API // 名字(使用API Blueprint命令才会用到)
API_CONDITIONAL_REQUEST=false // 带条件的请求
API_STRICT=false // Strict模式
API_DEFAULT_FORMAT=json // 响应格式
API_DEBUG=true // 调试模式
到这里dingo 算是完成
执行artisan 命令创建一个测试的类
这里有点需注意 执行artsian 命令会报错:
[Dotenv\Exception\InvalidFileException]
Dotenv values containing spaces must be surrounded by quotes.
其实已经说的很清楚了 配置文件中有空格的配置项必须加上引号
API_NAME=My API // 名字(使用API Blueprint命令才会用到)
哈哈这里my api 改成 “my api” 就行了
4、创建路由
//接管路由··
$api = app('Dingo\Api\Routing\Router');
// 配置api版本和路由
$api->version('v1', ['namespace' => 'App\Http\Controllers\Api\V1\Controller'], function ($api) {
$api->get("test/{id}/{name}", 'RestFulController@test')->name("getinfo");
});
使用php artisan api:routes 查看路由表 如果有就是创建成功了
5、创建测试类
php artisan make:controller Api/V1/Controller/RestFulController
namespace App\Http\Controllers\Api\V1\Controller;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Dingo\Api\Routing\Helpers;
class RestFulController extends Controller
{
use Helpers;
public function test(Request $request){
$id = $request->id;
return $this->response->array(['id'=>$id,'name'=>"test","passwd"=>"123456"]);
}
}
6、使用postman 测试
这里就已经一个简单reseful 的接口了
下面是dingo/api 的详细教程—-遇到问题首先去看文档
https://github.com/liyu001989/dingo-api-wiki-zh