RESTful API 的最佳返回方式应该是怎样的?
在应用开发过程中,接口的开发肯定是少不了的。但是如何开发接口才能算是较优的方案呢?
换个问法:如何按需返回 API 数据
工作了两年了,也做过很多(小型)前后端分离的应用,写过很多接口。但是,越做就越迷惑,应该怎么写一个接口才合适?
这里想讨论的不是接口的返回数据结构,而是一个接口处理完相关业务后如何返回结果。
比如:
- 直接返回:
$resource=Model::first(); return $resource;
- 通过JsonResponse
return response()->json(["data"=>["foo"=>"bar"]]);
- 通过API资源返回
return new UserResponse(User::first());
问题在于,并不是每次请求都要获取资源的全部信息,有些接口还需要返回一些嵌套信息,有些则需要根据请求接口的认证用户的不同而显示或隐藏等等。所以,应该如何设计返回资源的方式以尽量满足各种各样的微小差异?
推荐文章: