表单内容类型 (W3C)
Apiato 默认使用 x-www-form-urlencoded 来编码简单的 文本/ASCII 数据,当然,它也支持其他类型。
ASCII 负载
你需要把 Content-Type : x-www-form-urlencoded 放在你的请求头部,来告诉网站服务器你使用的是简单的 文本/ASCII 负载编码 (name=Mahmoud+Zalt&age=18)。
JSON 负载
你需要吧 Content-Type = application/json 放在你的请求头部,来告诉网站服务器你使用的是 JSON 格式的负载编码 ({name : 'Mahmoud Zalt', age: 18})。
(你如果希望在本例中返回的数据格式也是 JSON。你可以把响应的序列化器从 DataArraySerializer 改为 JsonApiSerializer,更多信息请查看响应章节).
HTTP 请求头部
| 头部 | 内容示例 | 什么情况下需要使用 |
|---|---|---|
| Accept | application/json |
每次向访问点(endpoint)发送时都必须带上 |
| Content-Type | application/x-www-form-urlencoded |
每次传输数据时都必须带上 |
| Authorization | Bearer {Access-Token-Here} |
只要访问点(endpoint)需要权限认证时,就必须带上 |
| If-None-Match | 811b22676b6a4a0489c920073c0df914 |
当指向一个先前请求的特定 ETag 时,应当带上。如果两个 ETag 同时匹配上,那么将会返回 HTTP 304(未修改) |
注意!
通常来说,当你调用一个 JSON API 时,你应该在 HTTP 头部包含
Accept : application/json。 然而,在 Apiato 中,你可以通过在app/Ship/Configs/apiato.php里设置'force-accept-header' => true,来强制你的用户发送application/json,或者通过设置'force-accept-header' => false,来允许你的用户自行决定。 默认情况下,这个参数被设置为 false。
调用访问点(Endpoint)
调用未保护的访问点(endpoint)示例:
curl -X POST -H "Accept: application/json" -H "Content-Type: application/x-www-form-urlencoded; -F "email=admin@admin.com" -F "password=admin" -F "=" "http://api.domain.test/v2/register"
调用受保护的访问点(endpoint)示例 (通过 Bearer 令牌来保护) :
curl -X GET -H "Accept: application/json" -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." -H "http://api.domain.test/v1/users"