Apiato 应用程序-入门-响应
Apiato响应
在Apiato中,您可以定义自己的响应有效负载或使用其中一个受支持的序列化程序。
目前支持的序列化程序是(ArraySerializer
,DataArraySerializer
和JsonApiSerializer
)。由Fractal提供。
默认情况下Apiato使用DataArraySerializer
。以下是响应有效负载的示例。
默认Apiato响应有效数据格式:
DataArraySerializer
pesponse有效载荷如下所示:
{
"data": [
{
"id": 100,
...
"relation 1": {
"data": [ // multiple data
{
"id": 11,
...
}
]
},
"relation 2": {
"data": { // single data
"id": 22,
...
}
}
}
},
...
],
"meta": {
"pagination": {
"total": 999,
"count": 999,
"per_page": 999,
"current_page": 999,
"total_pages": 999,
"links": {
"next": "http://api.apiato.develop/v1/accounts?page=999"
}
}
},
"include": [ // what can be included
"xxx",
"yyy"
],
"custom": []
}
分页反应:
对数据进行分页时,响应有效负载将包含meta
有关分页的说明。
{
"meta": {
"pagination": {
"total": 999,
"count": 999,
"per_page": 999,
"current_page": 999,
"total_pages": 999,
"links": {
"next": "http://api.apiato.develop/v1/accounts?page=999"
}
}
},
"include": [ // what can be included
"xxx",
"yyy"
],
"custom": []
}
包括:
通知用户可以在响应中包含哪些关系。例:?include=tags,user
有关更多详细信息,请阅读Relationships
“ 查询参数”页面中的部分
更改默认响应有效负载:
默认响应格式(规范)是DataArray
Fractal Serializer(League\Fractal\Serializer\DataArraySerializer
)。
要更改默认的Fractal Serializer,请打开.env
文件并更改
API_RESPONSE_SERIALIZER=League\Fractal\Serializer\DataArraySerializer
支持的序列化器是
- ArraySerializer
- DataArraySerializer
- JsonApiSerializer
更多细节可以在Fractal和Laravel Fractal Wrapper中找到。
如果返回JSON Data(JsonApiSerializer
),您可能希望检查一些JSON响应标准: - JSEND(非常基础)
- JSON API(非常受欢迎且文档齐全)
- HAL(在超媒体情况下有用)
资源键
对于JsonApiSerializer
变换器允许将a附加ResourceKey
到已转换的资源。您可以通过ResourceKey
两种方式在响应有效负载中设置:
通过$this->transform()
呼叫中的相应参数手动设置它。请注意,这只会设置top level
资源键,不会影响资源中的资源键included
!
在相应的上指定它Model
。通过覆盖$resourceKey
,(protected $resourceKey = 'FooBar';
)。如果$resourceKey
未定义Model
,ShortClassName
则用作键。例如,所述ShortClassName
的App\Containers\User\Models\User::class
是User
。
对于DataArraySerializer。
默认情况下,object关键字用作每个响应的资源键,并在每个转换器中手动设置, 以便稍后自动执行。
错误响应格式
访问每个功能,例如身份验证,您将看到未经身份验证的响应如何,授权,验证等相同。
构建来自控制器的响应:
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: