因为某些某些原因,不能定时更新,唉。我会尽力,加快速度。(这句话不是翻译的哈)
原文地点——> https://github.com/dingo/api/wiki/Responses
A functioning API is built upon receiving requests and returning a consumable response to the client. An API will generally return responses in an easy to consume format such as JSON. There‘s a number of different ways to return responses and it will largely depend on how complex your API is or will become.
一个运行的API 主要是获取请求并返回给客户端响应信息。一个API凡是会以一种易于使用的格局返回响应,例如JSON。这是一个差此外要领去返回请求。这里有许多差此外要领可以返回响应,很洪流平上取决于您的API的庞大水平或者API未来的标的目的。
The easiest way to return a consumable response is to simply return an array or object directly from your controller. Not every object can be correctly formatted though so you should ensure that it implements either the ArrayObject or the Illuminate\Support\Contracts\ArrayableInterface interface.
返回一个可使用的响应最简单的方法是直接从控制器返回数组或东西。不是每个东西都能够被返回正确的格局,但因此,你应该确定它担任了ArrayObject或者Illuminate\Support\Contracts\ArrayableInterface接口。
class UserController { public function index() { return User::all(); } }
在这个实例中,我们的User类担任了Illuminate\Database\Eloquent\Model,意味着它能作为一个格局化的数组返回,所以我们能通过挪用User::all(),简单的返回一个users调集。
同样的,你也能使用它返回一个单一的user。例:如下
class UserController { public function show($id) { return User::findOrFail($id); } }
这个包,将自动格局化响应信息之后作为JSON格局返回,并且为Content-Type 头设置为application/json。
Response Builder 响应构建器这个响应构建器,供给一个流畅的接口去简单的生成一个定制的响应信息。这个响应构建器凡是与transformers结合使用。
要想在你的控制器,使用这个响应返回。你应该引入(使用) Dingo\Api\Routing\Helpers。为了让你的全部控制器都可以用使用这个特性,你应该创建一个基类控制器,让你所有的控制器都去担任(extends)它。
use Dingo\Api\Routing\Helpers; use Illuminate\Routing\Controller; class BaseController extends Controller { use Helpers; }
此刻,你的控制器能简单的担任根基控制器。在你的控制器中可以经由$response属性来访谒响应构建器。
关于这,更详细的文档,你应该看Transformers那节。(接下来,我会慢慢翻译的,,等。。)
Responding With An Array 作为一个数组返回class UserController extends BaseController { public function show($id) { $user = User::findOrFail($id); return $this->response->array($user->toArray()); } }
Responding With A Single Item 作为一个item返回
class UserController extends BaseController { public function show($id) { $user = User::findOrFail($id); return $this->response->item($user, new UserTransformer); } }
Responding With A Collection Of Items 作为一个元素调集返回class UserController extends BaseController { public function index() { $users = User::all(); return $this->response->collection($users, new UserTransformer); } }
Responding With Paginated Items 返回带分页的数组
class UserController extends BaseController { public function index() { $users = User::paginate(25); return $this->response->paginator($users, new UserTransformer); } }
Responding With No Content 无内容响应return $this->response->noContent();
Responding With Created Response 创建了资源的响应return $this->response->created();
你也可以,为这个created 随意的供给一个值,作为第一个参数。
return $this->response->created($location);
Responding With An Error 返回一个错误提示这个包内有很多差此外响应错误的提示,你可以快速的形成一个错误提示。(这块文字理解,我觉得不太好,就把真实的返回值写出来了)
return $this->response->error(‘This is an error.‘, 404);
返回信息:{"message":"This is an error.","status_code":404}return $this->response->errorNotFound();
返回信息:{"message":"Not Found","status_code":404}return $this->response->errorBadRequest();
返回信息:{"message":"Bad Request","status_code":400}return $this->response->errorForbidden();
返回信息:{"message":"Forbidden","status_code":403}
return $this->response->errorInternal();
返回信息:{"message":"Internal Error","status_code":500}
return $this->response->errorUnauthorized();
返回信息:{"message":"Unauthorized","status_code":401}
Adding Additional Headers 添加附加的表头一旦您使用了上述要领中的一个,您就可以通过添加附加的表头来进一步定制响应。