DingoApi

作者: 奇点解说 | 来源:发表于2019-06-07 08:04 被阅读0次

1、进入项目目录,执行composer安装命令

composer require dingo/api
image.png

安装成功。

2.生成配置文件。

php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"
image.png

执行成功后 config目录生成api.php文件。


image.png

api.php文件的中的配置项可以.env中设置,下面进行基本配置:

API_STANDARDS_TREE=prs

API_STANDARDS_TREE 有是三个值可选
x 本地开发的或私有环境的
prs 未对外发布的,提供给公司 app,单页应用,桌面应用等
vnd 对外发布的,开放给所有用户

API_SUBTYPE=kentcms

API_SUBTYPE是我们项目的简称,全小写。

通过以上两项的设置,可使用Accept 头来访问不同API 版方式如下:
访问 v1 版本
Accept: application/prs.kentcms.v1+json
访问 v2 版本
Accept: application/prs.kentcms.v2+json

接口访问方式设置:

API_PREFIX=api

API_PREFIX用来设置api前缀,如aaaxxxccc.com/api方式访问接口。

API_DOMAIN=api.xxxxxxx.com

除前缀方式外,还可为api单独指定访问域名,如 api.aaaxxxccc.com方式访问接口。
API_PREFIX与API_DOMAIN不可同时指定,二者选其一。

API_VERSION=v1 //指定默认访问的版本,未指定Accept版本号时访问此版本
API_DEBUG=true //debug开关
API_STRICT=false //严格模式需要客户端发送 Accept 头,默认false

3.测试效果

找到路由目录下的 routes/api.php 文件,laravel默认已经生成了一个路由

oute::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

将其修改成DingoApi方式

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

$api->version('v1', function($api) {
    $api->get('version', function() {
        return response('kent v1');
    });
});

$api->version('v2', function($api) {
    $api->get('version', function() {
        return response('kent v2');
    });
});

如果你想一个分组返回多个版本,只需要传递一个版本数组。

$api->version(['v1', 'v2'], function ($api) {
});

使用postman访问接口

image.png
在没有指定版本的情况下,访问了v1版,由于开启了debug下方显示了调试信息。
接下来通过加入Accept访问其他版本
image.png

相关文章

  • DingoApi

    1、进入项目目录,执行composer安装命令 安装成功。 2.生成配置文件。 执行成功后 config目录生成a...

  • DingoAPI和JWT

    1.参考视频laravist 2.tymondesigns/jwt-auth|安装手册 dingo/api/安装手...

  • Laravel下安装DingoAPI

    一、安装 (1)项目中修改composer.json文件并且运行composer update "require"...

  • 如何安装passport以及dingoapi

    1.composer require laravel/passport 如果报错使用composer requir...

网友评论

      本文标题:DingoApi

      本文链接:https://www.haomeiwen.com/subject/aiklxctx.html