Laravel——Dinggo API(一)

本文详细介绍DinggoAPI的安装、配置及使用方法。包括如何通过Composer安装、配置API参数、创建路由及端点、定义版本分组,并实现用户信息的获取与展示。

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());
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值