我使用Laravel-json-api框架创建了一个没有控制器的API,因为该框架完成了所有工作。
它可以很好地用于索引和读取,而不能用于更新。
我使用Postman进行更新,但是它返回了数据库中的记录,没有任何更改,也没有任何错误消息。
api.php文件:
JsonApi::register('v1')->routes(function ($api) {
$api->resource('titre')->only('index', 'read', 'update');
});
要更新滴定度记录,请使用/ localhost / api / v1 / titre / 777777
我使用具有正确Content-Type的Postman:application / vnd.api + json
这是我邮递员的原始尸体:
{
"data": {
"type": "titre",
"id": "777777",
"attributes": {
"ACTIF": "O",
},
"links": {
"self": "http://localhost/api/v1/titre/777777"
}
}
}
我希望API更新ACTIF属性,但结果是:
{
"data": {
"type": "titre",
"id": "777777",
"attributes": {
"ACTIF": "D",
},
"links": {
"self": "http://localhost/api/v1/titre/777777"
}
}
}
没有错误消息或其他任何信息,但是ACTIF属性(应从D更新为O)未更新。
根据Laravel-json-api文档,这应该起作用,对吗? 有人可以告诉我我的错误在哪里吗?
答案 0 :(得分:1)
您面临的问题可能是由多种原因引起的。请检查以下几点:
PATCH
HTTP方法进行更新。 JSON:API规范explicitly requires PATCH
for updates。ACTIF
属性是可填写的。 Laravel JSON API relies on mass assignment feature。如果这不起作用,请在您的问题中添加一个curl
请求,因为它可以帮助我们重现您的请求。