api laravel 统一返回方法_Laravel 统一API设计

最近要写一套系统接口,发现公司里写Java的同事写的接口提供的都是统一个请求地址,因为以前没有写过接口,感觉挺有意思的.所以我自己写的这套系统也通过Laravel实现了这一方法.

以下是实现的代码, 在routes.php里面定义这样的路由:

Route::post('/api.api', function(){

$post = Request::instance()->getContent(); //获取数据流,laravel方法

try{

$post = json_decode($post, true); //将JSON字符串解码为数组

//判断$post['data']是否存在

$post['data'] = empty($post['data']) ? [] : $post['data'];

//将请求数据分发到控制器操作

return App::make('App\Http\Controllers\Api\\'.$post['action'].'Controller')->$post['method']($post['data']);

}catch (Exception $e){

return ['code' => 1, 'description' => $e->getMessage()];

}

});

这样,请求接口的时候就可以通过传递不同的参数,调用不同的控制器和方法.

比如我们在app\Http\Controllers\Api 有一个TestController.php, 其中有一个test方法:

class TestController extends Controller

{

public function test($data){

return ['code' => 0, 'msg' => 'success'];

}

}

这样,我们可以通过请求localhost/api.api,传入一下参数(json字符串)调用这个接口:

{

"action": "test",

"method":"test",

"data":{

}

}

得到返回数据:

{

"code": 0,

"msg": "success"

}

这样的设计,可以通过传入不同的参数实现调用不同的接口,简化了后台接口路由的定义.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值