RESTAPI体系结构

RESTAPI体系结构,rest,architecture,api-design,Rest,Architecture,Api Design,我刚刚开始构建RESTAPI,请参考。 这是我第一次构建RESTAPI体系结构,所以有些模棱两可 发布与获取 在学习RESTAPI之前,当我不想暴露表单数据(例如用户ID、密码、电话号码)时,我会选择POST。 但在RESTAPI中,如果我所学到的是正确的,POST的意思是“创建新资源” 如果是,以下情况的正确方法是什么: '检查用户ID是否重复','查找我的ID或密码' 代表具体行动 RESTAPI指南说,使用名词来表示。 我通常用动词+名词组合(例如,checkId,findPassword

我刚刚开始构建RESTAPI,请参考。 这是我第一次构建RESTAPI体系结构,所以有些模棱两可

  • 发布与获取
  • 在学习RESTAPI之前,当我不想暴露表单数据(例如用户ID、密码、电话号码)时,我会选择POST。 但在RESTAPI中,如果我所学到的是正确的,POST的意思是“创建新资源” 如果是,以下情况的正确方法是什么: '检查用户ID是否重复','查找我的ID或密码'

  • 代表具体行动
  • RESTAPI指南说,使用名词来表示。
    我通常用动词+名词组合(例如,checkId,findPassword)来命名函数或方法。
    那么,什么是恰当的(或更好的)表达方式

    获取/用户/检查id
    GET/user/id/check
    获取/user/id/duplicate

    。POST肯定是用来创建东西的,GET是一个查询。也就是说,GET URL参数经常被记录在各处,这是绝对正确的,如果GET URL包含敏感数据,则不应在GET URL中使用它们

    为了检查用户的ID是否重复,我会使用该用户的ID发布一篇文章,如果已经存在,则返回一个HTTP 409代码


    查找密码是另一个问题。简言之,不要这样做。您永远不应该以纯文本形式存储用户密码。在当今的计算机世界,这样做是疏忽。重置密码应该包括创建密码重置请求(发送到/user/id/reset),这会导致通过另一个通道发送密码请求,但永远不会从GET请求返回密码。

    POST并不意味着
    创建新资源
    。POST意味着:执行一些不等幂或不安全的操作。就这样。POST通常用于创建新资源,但它绝对不限于此功能。感谢您的评论绝对是的,当“查找密码”时,密码将重置并发送到用户的电子邮件。多谢各位。