Dinggo API专业的Api开发工具包
安装:直接执行命令
composer require dingo/api
使用以下命令可以发布 API 的配置文件到 config 文件下:
php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"
配置:在env文件下配置
API_STANDARDS_TREE=x
API_SUBTYPE=shop
API_PREFIX=api
API_VERSION=v1
API_NAME=shop
API_CONDITIONAL_REQUEST=false
API_STRICT=false
API_DEFAULT_FORMAT=json
API_DEBUG=true
创建端点(路由)

为了避免与你主要的项目路由冲突,dingo/api 将会使用其专属的路由实例。要创建端点,我们首先需要获得一个 API 路由的实例:
$api = app('Dingo\Api\Routing\Router');
现在我们必须定义一个版本分组。这种定义方式有利于后续为相同端点新增多版本支持。
$api->version('v1', function ($api) {
});
还可以嵌套常规组以进一步定制某些端点。
$api->version('v1', function ($api) {
$api->group(['middleware' => 'foo'], function ($api) {
$api->get('users/{id}', 'App\Api\Controllers\UserController@show');
});
});
在app目录下创建一个Transformers的文件夹,然后创建Transformers类,一般一个Models对应一个Transformers类,例如创建一个UserTransformers

<?php
namespace App\Transformers;
use App\Models\User;
use League\Fractal\TransformerAbstract;
class UserTransformer extends TransformerAbstract
{
public function transform(User $user)
{
return [
'id'=>$user->id,
'username'=>$user->username,
'email'=>$user->email,
'name'=>$user->name,
'create_at'=>$user->created_at,
'update_at'=>$user->update_at,
];
}
}
响应数据:
public function index(Request $request)
{
$name = $request->input('name');
$email = $request->input('email');
$users = User::when($name ,function ($query) use ($name){
$query->where('name','like',"%$name%");
})
->when($email,function ($query) use ($email){
$query->where('email','like',"%$email%");
})
->paginate(2);
return $this->response->paginator($users,new UserTransformer());
}
本文详细介绍DinggoAPI的安装、配置及使用方法。包括如何通过Composer安装、配置API参数、创建路由及端点、定义版本分组,并实现用户信息的获取与展示。
1248

被折叠的 条评论
为什么被折叠?



