- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个现有的 API,我正在尝试使其更加 RESTful。
该应用程序涉及一名送礼者和一名受赠者。送礼者为受礼者购买一些东西,并通过 Whatsapp 发送礼物链接。
在为受赠者创建用户帐户之前,我首先通过将该人与电话号码绑定(bind)来进行一些验证。我有 2 个端点:
/sendSmsCode
/verifyUser
第一个端点将短信代码发送到电话号码,第二个端点接收短信代码并验证其正确性。 /verifyUser
然后返回一个 session token 。然后,该 session token 用于接受礼物并创建用户。
显然这些不是 RESTful 端点。但现阶段尚未创建用户,因此我无法执行类似 /users/{id}/send-sms
的操作(我知道它不会太安静,因为它包含一个动词)。
有什么建议吗?
最佳答案
我本来想发表评论,但评论太长了,所以我将其作为答案发布(尽管它可能无法直接回答您的问题)。
Obviously these are not RESTful endpoints.
REST 是一种架构风格,而不是设计 URI 的手册。仅仅强调 REST 本身不关心 URI 拼写是不够的,只要 URI 符合 RFC 3986 .
要被视为 RESTful,应用程序必须遵循chapter 5 中定义的一组约束。罗伊·托马斯·菲尔丁的论文。
您在问题中提到使用 session token 。如果 session 状态保存在服务器上,那么它根本就不是 RESTful。 REST 应用程序应该是 stateless ,其中一个请求包含服务器可以理解的所有必需信息,而不利用服务器上存储的 session 状态。
I can't do something like
/users/{id}/send-sms
(which I know wouldn't be too RESTful either given it includes a verb).
REST 架构风格的一个重要概念是资源及其标识符。
URI(或U通用R资源I标识符)旨在标识资源而不是表达对资源的操作。对资源执行的操作可以通过请求方法来表达。请求方法是请求语义的主要来源,指示客户端发出此请求的目的以及客户端期望成功的结果。
为了正确地标识资源,使用名词是很自然的选择(因为动词是通过 HTTP 方法来表达的)。但并不强制只使用名词。只要您遵守 REST 约束,您肯定可以设计一个带有一些动词的 RESTful API(并且可能使用 POST
将数据发送到此类端点)。
关于java - 使现有 API 更加 RESTful,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57723643/
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 4 年前。 Improv
我正在寻找清理 Grails Controller 代码的方法。在各种 Controller 中我或多或少有相同的逻辑.. 获取对象 检查是否存在 等等.. 是否有建议的方法可以使 Controlle
我真的很喜欢 PHP,因为: _ 易于开发 Web 应用程序(您可以在 10 分钟内设置 LAMP,然后就可以开始了) _ 简单易学 _ 易于部署(您只需要带有 PHP 模块的 Apache) 我真的
我正在尝试使用 mod_rewrite 将我的博客 URL 转换为更适合 SEO 的格式。我所有的文章都存储在一个简单的 MySQL 数据库中。每个博客文章的网址如下所示: http://www.te
我是一名优秀的程序员,十分优秀!