dingo/api项目包的安装及响应介绍

一、安装dingo/api项目包

dingo/api文档

1.1 安装dingo/api

安装命令:composer require dingo/api
在这里插入图片描述


出现下图,安装成功:
在这里插入图片描述


1.2 配置dingo/api

使用以下命令可以发布 API 的配置文件到 config 文件下:
php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"
在这里插入图片描述
发布完成后,在config文件夹下就会出现api.php配置文件:
在这里插入图片描述
这个是dingo/api配置文件。


1.3 Stand Tree标准树

可以查看dingo/api配置文档:

https://learnku.com/docs/dingo-api/2.0.0/Configuration/1444

我们这里配置如下:

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

在这里插入图片描述

二、端点

一个端点是一个路由的另一种说法。当讨论 API 的时候,很多人把访问的路由称作为一个端点。

2.1 创建端点:

$api = app('Dingo\Api\Routing\Router');


定义一个版本分组。这种定义方式有利于后续为相同端点新增多版本支持:

$api->version('v1', function ($api) {
    $api->get('index', [\App\Http\Controllers\TestController::class, 'index']);
});

在这里插入图片描述

2.2 新建一个Testcontroller:

php artisan make:controller TestController
在这里插入图片描述

2.3 命名路由和生成 URLs

    // 命名路由
    $api->get('nickname', ['as' => 'test.nickname', 'uses' => '\App\Http\Controllers\TestController@nickname']);

在这里插入图片描述

控制器方法:

    public static function nickname() {
        $url = app('Dingo\Api\Routing\UrlGenerator')->version('v1')->route('test.nickname');
        dd($url);
    }

在这里插入图片描述
浏览器输入:http://homestead.test/api/nickname
可以看到效果:
在这里插入图片描述
(tips:这边仅做了解,一般我们写纯api的话,很少会有像之前写模版那样使用到命名路由。)

2.4 查看所有路由

php artisan api:routes
在这里插入图片描述

三、响应

3.1 更改数据库配置

https://learnku.com/docs/dingo-api/2.0.0/Responses/1446

改下.env数据库配置:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

在这里插入图片描述

3.2 执行迁移文件

php artisan migrate
在这里插入图片描述
在这里插入图片描述
手动先添加2个用户为下面的例子做好铺垫:
在这里插入图片描述
修改TestController里的index方法:

public static function index() {
        return User::all();
    }

在这里插入图片描述
测试:
在这里插入图片描述

3.3 响应生成器

继承:
在这里插入图片描述
我们直接写到Controller.php控制器中:
在这里插入图片描述
1、响应一个数组

public function index() {
        // return User::all();
        // 响应一个数组
        return $this->response->array(['name' => 'lili', 'age' => 18]);
    }

在这里插入图片描述
在这里插入图片描述
2、 响应一个元素
app文件夹下创建一个Transformers文件夹,写入UserTransformer.php

<?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,
            'name' => $user->name,
            'email' => $user->email,
        ];
    }
}

在这里插入图片描述
TestController.php写入:

public function index() {
        // return User::all();

        // 响应一个数组
        // return $this->response->array(['name' => 'lili', 'age' => 18]);

        /** 使用transformer */
        // 响应一个元素
        $user = User::find(1);

        return $this->response->item($user, new UserTransformer);

    }

在这里插入图片描述
效果:
在这里插入图片描述


更多可以查看dingo/api文档

在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你华还是你华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值