需要针对以下查询提出一些建议:
如果客户想要访问特定资源,例如:http://sample.com/user/id/profile。 然后在这种情况下如何在客户端存储 id 。
Cookie是否是上述问题的解决方案,如果是,那么在禁用cookie的情况下会发生什么?
如何使用HTTP方法PUT和DELETE?因为,HTML不支持它。
你们可以建议使用Spring设计RESTful Web服务的参考资料吗?
由于
答案 0 :(得分:0)
ID是URL中的固有ID,但您提供的文档也可以包含ID以方便使用。您没有提到您正在服务的内容类型,但假设它是XML或JSON,您可以粘贴ID属性。更好的是,客户端应该通过URL而不是ID来寻址。这就是HATEOAS原则的用武之地:提供带有其他文档链接的文档,并按照导航网页的方式导航文档。通常的做法是将众所周知的组件中的网址粘贴在一起,但最好说实体的网址是其ID。我工作的口头禅是“不要试图推理URL”,这意味着客户端不应该从我们的API解析URL,他们应该将其视为不透明的对象。因此,当您谈到“创建动态URL”时,请不要这样做。您可以通过搜索URL发现资源,例如/user/findByEmail?email=foo@example.com,它将返回与该电子邮件匹配的用户实体的集合。
在RESTful解决方案中,您不需要依赖cookie。有时它们很方便,因为它在常规网站上很方便,但你不需要cookie。如果这是一个真正的REST API,您需要记住cookie可能需要为客户端提供额外的工作。仅仅因为Web浏览器神奇地处理它们并不意味着有人用C#,Java,PHP,Ruby编写客户端,无论其他语言是什么,都有神奇的cookie支持。但是,标准HTTP非常普遍。
HTML表单不支持PUT&删除,虽然现在大多数人都通过Javascript访问REST API。如果您绝对必须在没有Javascript的情况下支持HTML表单,您可以将操作重载到POST上 - 即如果您的资源是/ user / id / profile,则将空文档POST到/ user / id / profile / delete或/ user / id /简介/更新。这不是很好的做法,但如果必须,你必须这样做。
答案 1 :(得分:0)
我不确定你是否得到了问题的答案。以下是我的想法:
如果客户想要访问特定资源,例如:http://sample.com/user/id/profile。然后在这种情况下如何在客户端存储id。
Cookie是否是上述问题的解决方案,如果是,那么在禁用cookie的情况下会发生什么?
如何使用HTTP方法PUT和DELETE?因为,HTML不支持它。