我有一个 GraphQL 查询,它调用 REST 服务来获取返回对象。该查询包含一个 Id 参数,然后将该参数传递给服务。但是,如果具有该 ID 的对象不存在,则 REST 服务可以响应 http 状态 404 Not Found。这似乎是正确的回应。
如何在 GraphQL 中对“未找到”响应进行建模?有没有办法通知 GQL 调用者某些内容不存在?
更新
我正在考虑的一些选项:
但目前尚不清楚 GQL API 设计是否有推荐的做法。
您可以将其视为错误并进行相应处理。
我建议您查看GraphQL 规范,其中有关错误处理的段落。
我希望它包含您正在寻找的内容。
基本上,您应该返回任何可以返回的内容,并告知客户“错误”字段中的潜在问题。
文档中的示例:
请求:
{
hero(episode: $episode) {
name
heroFriends: friends {
id
name
}
}
}
Run Code Online (Sandbox Code Playgroud)
回复:
{
"errors": [
{
"message": "Name for character with ID 1002 could not be fetched.",
"locations": [ { "line": 6, "column": 7 } ],
"path": [ "hero", "heroFriends", 1, "name" ]
}
],
"data": {
"hero": {
"name": "R2-D2",
"heroFriends": [
{
"id": "1000",
"name": "Luke Skywalker"
},
{
"id": "1002",
"name": null
},
{
"id": "1003",
"name": "Leia Organa"
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9871 次 |
| 最近记录: |