设计以RESTful方式工作的复杂API指南?
我尝试了RESTfulAPI概念,发现它是构建资源API的一种很好的思维方式。例如,将设计以RESTful方式工作的复杂API指南?,api,rest,Api,Rest,我尝试了RESTfulAPI概念,发现它是构建资源API的一种很好的思维方式。例如,将comment添加到post将是 POST /posts/{id}/comments 然而,在某些情况下,如果我错了,请纠正我,预期的API实际上不能作为简单的CRUD建模 例如,将产品添加到系统需要添加图片,添加多个标签指定其类别 我如何以平静的方式来做这件事 1.)我是否强制API用户在多次API调用后跟随 POST /pictures -- add picture GET /categories --
comment
添加到post
将是
POST /posts/{id}/comments
然而,在某些情况下,如果我错了,请纠正我,预期的API实际上不能作为简单的CRUD建模
例如,将产品
添加到系统需要添加图片
,添加多个标签
指定其类别
我如何以平静的方式来做这件事
1.)我是否强制API用户在多次API调用后跟随
POST /pictures -- add picture
GET /categories -- get selected category
POST /tags -- add tags
POST /products -- input picture, category, tags ids as JSON fields
2.)是否使用自动查找所有子资源的嵌套对象
POST /products -- input nested JSON array with picture/category/tags object field
在这种情况下,所有子资源都将是现有资源,而不是应该发布的一些(picture
,tags
)。
另外,如果添加图片
在内部成功,但添加标记
失败,会发生什么情况
3.)我只是做一个随意的API吗?这和休息有什么关系?这不是打破了宁静的想法吗
POST /add_products
对于RESTful API,是否有处理复杂API的指南
谢谢。在我看来,人们对REST最大的误解之一是内部模型(db中的表或mongo中的文档)和REST资源必须相同。REST资源可以是一个真实的模型,也可以是数据库中可能不存在的抽象实体 因此,在这种情况下,您的带有
POST
的url,即POST/products
请求对于REST来说是完全正确的。根据我个人的经验,只要保留REST的基本原则,比如