在专门返回Json的API上考虑这些端点:
GET /cities/{id}/stores
GET /cities/{id}/mayor
store
和mayor
都是可以拥有自己标量属性的对象。
city->stores
关系是一对多关系,但city->mayor
关系是一对一关系。在这两种情况下,结果都可以为空。
我同意
当具有该ID的资源不存在时, GET /stores/{id}
,GET /cities/{id}
和GET /mayors/{id}
应返回404。
但是,如果某个城市没有商店,那么我希望GET cities/{id}/stores
返回[]
。
我的问题是,鉴于一个城市没有现任市长,应该做什么
GET /cities/{id}/mayor
返回?
答案 0 :(得分:1)
如果未设置给定城市的市长并且它与一对一关系存在,则应返回404
状态代码。
返回null
值没有意义 - 因为API消费者不知道如何应对此值。
另一种选择是将此端点从 mayor 更改为 mayors 并始终返回空集合或集合中的一个条目 - 但这不是一个好主意,应该很好记录在案,总的来说,我很遗憾,我建议它;)
您也可以将市长嵌入城市,然后在返回的JSON中将其值设置为null(如果不存在)。