【问题标题】:Should I use nested routes or not?我应该使用嵌套路由吗?
【发布时间】:2022-01-13 18:44:36
【问题描述】:

下面列出了我计划在我的文档采集应用程序中使用的端点。我目前正在与自己辩论是否应该包含/users/{id}/documents 或仅包含/documents/users/{id}/documents 意味着我的路线非常嵌套,并且更难维护。

那么你觉得我的 api 设计好看吗,或者有什么你会改变的吗?

GET /documents
POST /documents/new
PUT /documents/{id}/save
DELETE /documents/{id}/delete
PUT /documents/{id}/share

POST /auth/signup
POST /auth/login
GET /auth/loggedin
POST /auth/logout

PUT /users/{id}/password/update
PUT /users/{id}/email/update
PUT /users/{id}/username/update

【问题讨论】:

    标签: api rest web-services routes architecture


    【解决方案1】:

    HTTP 动词也有一些含义。

    例如,当您将POST 用于/documents 时,这意味着您要创建一个。所以你不需要/documents/new。 所以我们可以重写路由如下:

    GET /documents
    POST /documents
    PUT /documents/{id}
    DELETE /documents/{id}
    PUT /documents/share/{id}
    
    POST /auth/signup
    POST /auth/login
    GET /auth/loggedin
    POST /auth/logout
    
    PUT /users/{id}/password
    PUT /users/{id}/email
    PUT /users/{id}/username
    

    但这完全取决于您必须选择端点。 有些程序员很少使用PUTDELETE方法。

    例如,他们使用POST 删除为/documents/delete/{id}

    我个人喜欢使用各种 HTTP 方法

    【讨论】:

    • 我用/new 明确表示这是关于创建一个新文档。
    • 是的,没关系,但POST 已经意味着你想创造一些东西。看看这个post
    • 你觉得这个设计怎么样?
    • 我已经回答了你的问题。答案是我的想法:)。也看看我在评论中链接的帖子。
    猜你喜欢
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 2016-05-08
    • 2013-08-11
    相关资源
    最近更新 更多