【问题标题】:Creating Resftul URI Paths?创建 Restful URI 路径?
【发布时间】:2016-02-28 17:52:27
【问题描述】:

我正在使用Spring MVC 创建一个非常简单的restful Web 应用程序。

这是一个“狗粮”应用程序,允许狗窝主人跟踪每只狗得到的零食量。

主页只是一个table,包含所有狗的名字和零食的数量。

还有以下功能:

  • 为特定的狗添加零食。

  • 表格中的链接可查看每只狗的更多详细信息。

我正在考虑按如下方式创建我的 URI 路径:

/treats =  table with all dogs and treats

/treats/add = add a treat to a specific dog

/treats/{dog} = specifc details for a certain dog

我弄错了吗?这是我的第一次宁静的服务,我希望设计正确。

【问题讨论】:

    标签: java spring rest uri


    【解决方案1】:

    我认为这个设计不太正确。第一个 URL 路径是正确的。但是要将狗添加到特定的款待中,URL 应该是

    /dogs = GET retrieves all dogs, POST create a new dog
    /dogs/{dogId} = GET retrieves one specific dog, POST updates the entity, DELETE deletes the entity
    /dogs/{dogId}/treats = GET retrieves all treats, POST to add a new treat
    /dogs/{dogId}/treats/{threatId} = POST/DELETE updates/deletes an entity
    

    更多信息可以在这里找到:Spring REST Tutorial

    【讨论】:

    • 我不确定我的解释是否正确。我想给一只狗添加一个零食,即一只狗可以有很多零食,而不是一只狗给一个零食?谢谢
    • 好吧,我误会了。然后它应该是相反的方式: /dogs - 获取所有狗 /dogs/{dogId}/treats - POST 添加款待 /dogs/{dogId}/treats/{treatId} - POST/DELETE 以更新/删除
    • 好的,谢谢,所以当我单击表中的特定 Dog 以查看更多详细信息时,路径应该仍然是 /treats/{dogId} 吗?添加全新狗的 URL 怎么样?当然它不会以 /treats 开头?
    • 在概览中,URL 应该是 /dogs,特定狗的 URL 应该是 /dogs/{dogId}
    • 我猜您将 REST URL 与浏览器位置栏中的 URL 混淆了。例如,URL /dogs 在 REST 上下文中的含义与 POST(创建新实体)和 GET(获取所有现有实体)不同。浏览器 URL 可能与 REST URL 完全不同。
    猜你喜欢
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多