我是 apigility 代码连接服务的新手,并且能够使用映射器文件上的 fetch 和 fetchall 类方法创建一个 RESTful 服务。
有人可以为我指出一个通过 REST 服务插入(POST)数据的好示例吗?
谢谢,
凯文
我是 apigility 代码连接服务的新手,并且能够使用映射器文件上的 fetch 和 fetchall 类方法创建一个 RESTful 服务。
有人可以为我指出一个通过 REST 服务插入(POST)数据的好示例吗?
谢谢,
凯文
POST 通常用于创建新资源。这意味着在您的请求中,您将需要以下标头:
Accept: application/json
Content-Type: application/json
第一个告诉 Apigility 它期待什么样的响应。第二个表示您将提供给 API 的数据将采用 json 格式。
默认情况下,Apigility 使用 json 或 json+hal 进行返回,并期望 json 用于传入数据。
当您创建新资源时,通常会将其保存在数据库中,因此资源的 id 将由您的代码或数据库生成。其余的资源将由调用者提供给 API。例子:
POST /api/user
{
"username": "kevin voyce",
"firstname": "kevin",
"lastname":" "voyce"
}
如果你这样做,你应该看到类似的响应
405 - Method Not Allowed
错误的主体应表明该方法尚未定义。错误消息来自资源中的 create 方法。在此方法中,您将看到一个名为 $data 的参数,此时它将包含一个 PHP stdClass,其中的字段与您通过 JSON 主体传入的内容相匹配。
这就是在 Apigility 中配置 API 的字段部分的用武之地。如果您设置字段的名称并将验证器放在字段上,Apigility 将确保传入的字段符合并根据这些有效在调用您的 API 之前的验证器。这不仅适用于 POST,也适用于 PATCH 和 PUT。这意味着在您的方法中,您不必担心输入尚未经过验证(只要您正确配置了验证器)。