PHP Laravel Dingo请求头实现版本号控制

route配置:

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

$api->version('v1', ['namespace' => 'App\Http\Controllers\NoAuth'], function ($api) {/
    $api->post('/tourist/init', 'TestController@area');
});

$api->version('v2', ['namespace' => 'App\Http\Controllers\NoAuth\v2'], function ($api) {
    $api->post('/tourist/init', 'NewTestController@area');
});

请求头格式:

Accept: application/vnd.YOUR_SUBTYPE.v1+json

.env 配置:

// .env 配置
// Standards Tree 一共提供了3种tree,x, prs, vnd 
// x: unregistered tree 本地或是私有环境 
// prs: personal Tree 项目不是用于商业发布
// vnd: vender tree用于公开的商业项目
API_STANDARDS_TREE=vnd  
API_SUBTYPE=api   // 项目或工程的简称
API_PREFIX=api    // API前缀
API_VERSION=v1   // 当请求头无参数时,将会默认走V1版本
API_DEFAULT_FORMAT=json // 返回格式 默认的数据以json进行前后端的传递

实际例子:
请求v12种方式,

  1. 通过默认方式,不带任何版本信息,就会走v1

  2. 在请求头中,带Accept参数,指定v1路由

    Accept: application/vnd.api.v2+json

请求v2版本,请求头中带以下参数

Accept: application/vnd.api.v2+json

在访问未定义的版本,比如指定请求v3版本,则提示如下
请求头:

Accept: application/vnd.api.v3+json

返回值:

{
    "message": "The version given was unknown or has no registered routes.",
    "status_code": 400
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值