什么是 null nested 属性 of resource 的正确响应

What is the right response for null nested property of resource

考虑 API 上的这些端点 return 完全 Json:

storemayor 都是可以拥有自己的标量属性的对象。

city->stores关系是一对多,而city->mayor关系是一对一。在这两种情况下,结果都可以为空。

我同意

当具有该 ID 的资源不存在时,

GET /stores/{id}GET /cities/{id}GET /mayors/{id} 应该 return 404。

但是,如果一个城市没有商店,那么我预计 GET cities/{id}/stores 到 return []

我的问题是,如果一个城市没有现任市长,应该怎么办? GET /cities/{id}/mayor return?

如果给定城市的市长未设置且存在一对一关系,404 状态码应为 returned。

返回 null 值没有意义 - 因为 API 消费者不知道如何处理这个值。

另一种选择是将此端点从 mayor 更改为 mayors 和 return 空集合或始终包含一个条目的集合- 但这不是一个好主意,应该有很好的记录,总的来说我很遗憾我提出了它;)

您还可以将市长嵌入城市,然后在 returned JSON 中将其值设置为 null(如果不存在)。