web-services - 基于操作的 URI 和基于资源的 URI 之间有什么区别?

标签 web-services rest jersey jax-rs

*我刚刚开始探索 RESTful 服务,我发现 rest 使用基于资源的 URI,所以我只想知道它们之间有什么区别,基于资源的 URI 是否比基于操作的 URI 有任何优势 *

最佳答案

基于操作的 URL:

  • 专注于正在执行的操作
  • 通常包含一个动词
  • 经常依赖外部资源来识别正在操作的资源(例如, session 状态)

基于资源的 URL:

  • 关注正在采取行动的资源
  • 通常由名词组成
  • 依靠 HTTP 动词来定义正在执行的操作(例如,GET、PUT、POST 和 DELETE)

例子:

Action-based URL                     Resource-based URL
-----------------------------------------------------------------
GET  /register                       GET    /accounts/application
POST /register                       POST   /accounts
GET  /catalog/search                 GET    /queries/form
POST /catalog/search                 POST   /queries
GET  /cart                           GET    /order/123
POST /cart/add-item                  POST   /order/123/items
POST /cart/empty                     DELETE /order/123
GET  /check-out                      GET    /order/123/invoice
POST /check-out                      POST   /order/123/payments
GET  /thank-you                      GET    /order/123/receipt
POST /sign-in                        POST   /sessions
POST /admin/delete-user?id=123       DELETE /user/123
GET  /catalog/edit?id=123            GET    /items/123/form
POST /catalog/edit?id=123            PUT    /items/123

关于web-services - 基于操作的 URI 和基于资源的 URI 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38989984/

相关文章:

java - 找不到媒体类型 Jersey MessageBodyWriter = text/plain

java - Jersey /JAX-RS : How to cascade beans-validation recursively with @Valid automatically?

java - Web服务器中加载的类的注释是com.sun.proxy.$Proxy52?

PHP NTLM身份验证+soap客户端

c# - 如何从 ASP.net MVC 程序中获取普通 c# 程序中的 JSON 数据?

java - 带有外部类的 Jersey JSON 序列化

javascript - React JS - 如何通过获取语句验证凭据

rest - 如何在 Spring MVC 中为 REST API 实现 HTTP 'OPTIONS' 动词?

java - 使用 JAXB 在 Jersey RESTful API 的 JSON 输出中包含空元素

php - 我无法添加图像 Web 服务 Prestashop