【问题标题】:Can I write same path names for different methods in REST api?我可以为 REST api 中的不同方法编写相同的路径名吗?
【发布时间】:2017-08-05 05:28:24
【问题描述】:

我正在使用 Swagger api 编写 REST API。现在,我想通过以下方式编写插入、更新和删除的方法(我在网上很多 API 上都看到过这样的路径):

  1. POST(用于插入)

/学生

  1. PUT(用于更新)

/students/{studentId}

  1. DELETE(用于删除)

/students/{studentId}

现在,1 没问题,但 2 和 3 是相同的路径(但有不同的方法)。当我这样写时,Swagger API 给了我错误。那么这真的不允许吗?

如果不允许,有什么最好的方法来定义不同的路径,而不会使它们变长并且看起来仍然“酷”?

【问题讨论】:

标签: node.js rest express swagger


【解决方案1】:

要为同一路径定义不同的方法(GET/PUT/DELETE/等),只需在该路径下列出这些方法,如下所示:

paths:
  /students/{studentId}:
    # Common parameter for all methods on this path
    parameters:
      - name: studentId
        in: path
        ...

    get:
      summary: Get a student by ID
      ...

    put:
      summary: Update a student
      ...

    delete:
      summary: Delete a student
      ...

【讨论】:

  • 你刚刚写了什么?进入同一条路径?你能解释一下吗?
  • 哦,我从来没有读过这个。这才是我真正想要的。但是官方允许在同一路径下写多个方法吗?
  • ^^ 这是定义多个 HTTP 动词 GET/PUT/DELETE/等的正确(和官方)方式。对于相同的路径。 GitHub 上的讨论是关于不同的事情(相同的路径但名称不同的路径参数,例如 /students/{id}/students/{username})。
  • 如果可能,请将此帖标记为正确答案。谢谢:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-13
  • 2014-05-02
  • 1970-01-01
  • 2020-07-22
  • 1970-01-01
  • 1970-01-01
  • 2021-06-09
相关资源
最近更新 更多