Mongodb RESTful API命名约定
我有两个收藏:个人和宠物。一个人可以养任意数量的宠物 个人文件:Mongodb RESTful API命名约定,mongodb,api,nosql,restful-architecture,Mongodb,Api,Nosql,Restful Architecture,我有两个收藏:个人和宠物。一个人可以养任意数量的宠物 个人文件: person { id: person-id data: person-info } pet { id: pet-id data: pet-info personId: person-id } 宠物文件: person { id: person-id data: person-info } pet { id: pet-id data: pet-info personId: person
person {
id: person-id
data: person-info
}
pet {
id: pet-id
data: pet-info
personId: person-id
}
宠物文件:
person {
id: person-id
data: person-info
}
pet {
id: pet-id
data: pet-info
personId: person-id
}
这是我的API命名设计
- 从一个人那里获得所有宠物:/api/pets/:personId
- 获取所有宠物的条件:/api/pets/:personId?年龄大于等于4
- POST create new pet:/api/pets,带有包含个人id的请求正文
- 将更新宠物信息:/api/pets/:petId与包含个人id和更新信息的请求正文放在一起
- 删除包含宠物ID的请求正文的宠物:/api/pets/:personId
我的API命名约定是否有问题,如何改进?我认为将个人id直接传递给/api/pets有点奇怪 可以在此处找到命名约定: 请再次检查HTTP方法和REST。 基本概念是URL表示资源,应用于这些URL的HTTP方法指示您希望对这些资源执行的操作 获取-读取资源 放置/后创建资源 修补程序-更新资源 DELTE-删除资源 所以,如果您只更改资源的一部分属性,那么您可以使用PATCH而不是PUT来更新资源 同样在删除示例中,您应该使用宠物id作为路径变量,而不是个人id 对于获取一个人的所有宠物,我认为/api/person/id/pets比/api/pets/personid更简单,因为当您看到URL/api/pets/23时,您不知道它是宠物23还是id为23的人的所有宠物
再考虑一下最佳实践(只需使用您选择的搜索引擎即可) 可以在此处找到命名约定: 请再次检查HTTP方法和REST。 基本概念是URL表示资源,应用于这些URL的HTTP方法指示您希望对这些资源执行的操作 获取-读取资源 放置/后创建资源 修补程序-更新资源 DELTE-删除资源 所以,如果您只更改资源的一部分属性,那么您可以使用PATCH而不是PUT来更新资源 同样在删除示例中,您应该使用宠物id作为路径变量,而不是个人id 对于获取一个人的所有宠物,我认为/api/person/id/pets比/api/pets/personid更简单,因为当您看到URL/api/pets/23时,您不知道它是宠物23还是id为23的人的所有宠物
再考虑一下最佳实践(只需使用您选择的搜索引擎即可) 你的意思是像
api/people/:personId/pets
旁边的api/pets/…
东西吗?是的,我说得更有道理。这是这种情况下的最佳实践吗?你的意思是像api/people/:personId/pets
旁边的api/pets/…
一样吗?是的,我说得更有意义。这是这种情况下的最佳做法吗?谢谢,@Dennis,这很有帮助!“这个链接”帮了我很多忙谢谢你@DennisThanks,@Dennis,它非常有用!这个链接“”帮了我很多忙谢谢你@Dennis