web-services - 什么是休息,它的优势是什么

标签 web-services rest restful-authentication

很难说出这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。如需帮助澄清此问题以便可以重新打开,visit the help center .




10年前关闭。




我在谷歌上搜索了有关休息的文档,但我不确定我是否理解它。

我在rest中可以看到的是它的URL是干净的,例如:

http://host/webservice.asmx?name=xname&type=xtype

如果采用 REST 风格,则可能是:
http://host/webservice.asmx/xname/xtype

不是吗?

所以我只是发现 URL 更干净,但我找不到任何其他优点。

谁能告诉我更多?

我还有一些问题:
  • 我发现一些基于 Ruby-on-Rails 构建的应用程序都使用了干净的 URL,例如:

    http://xxx/blog/list

    http://xxx/blog/edit/1

    http://xxx/blog/1

    那么他们之间有什么关系吗?
  • 网址重写

    URL 重写是实现 REST 的方法之一吗?
  • 我们有一些基于 ASP.NET 的 Web 服务,有什么方法可以将其更改为 REST 架构?

  • 更新:

    我已经阅读了这篇文章(rest-to-my-wife),似乎使用 http(post/get/put/delete) 提供的动词,我们可以使用相同的 url 对资源进行不同的操作,只需放置相关数据在 http 正文中;
    例如,我想创建一个新订单:
    POST http://www.store.com/order,
    <purchase-order>
      <item> ... </item>
    </purchase-order>
    

    但我还有一些疑问:

    1)我们如何在页面中设置http主体?

    另一个例子,我想删除一个订单:

    删除 http://www.store.com/order/1

    但是在页面中,url只是一个链接,

    Mabye是这样的:

    delete this order

    它是静态的,我们如何告诉浏览器在将这个 url 发送到服务器时,它应该使用“删除”方式而不是“获取”方式?

    2)是否会导致服务器端的额外工作?

    由于我们可能会使用不同的 http 方法(get/post...)将相同的 url 发送到服务器,因此服务器可能必须解析 http header 和正文以确保用户想要对这个 url 执行什么操作(也许使用 'resource' 而不是 'url' 更好,但我无法分辨 url 和 uri 和 resouce 之间的区别)?

    以相同的网址为例:
    http://www.store.com/order/1
    

    如果服务器发现http方法是“get”,他可能知道“哦,这家伙只是想获取id为1的订单的信息”,如果方法是“删除”,他知道“哦,这家伙想删除 id 为 1"的订单。

    因此,这种方式似乎会将额外的工作从客户端转移到服务器端。

    我的意思是在客户端 url 都是一样的,它更容易,但对于服务器端它需要更多的工作,这是真的吗?

    最佳答案

    HTTP 本身就是一个 REST 实现。 URL 的构建方式与此无关。 REST 是一种在每个请求中传递信息的方式,而不是永久打开连接。

    关于web-services - 什么是休息,它的优势是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6160928/

    相关文章:

    ruby-on-rails - RESTful 身份验证 : Stumped trying to do simple redirect on cookie based authentication

    eclipse - 运行 mvn install 时如何指定 spring.profiles.active

    java - 如何使用继承的实体对 REST API 进行建模?

    java - 为什么 Spring Web 在 GET 请求上抛出 415 错误代码响应?

    java - 为网站创建 API

    java - 如何保护 Jersey REST?

    java - 为什么 GlassFish 和 JBoss 提供不同的 WSDL?

    c# - VS2010 Framework 3.5 中的 Web 服务中的方法在本地运行时未显示

    c# - 使用 ServerCertificateValidationCallback 的最佳实践

    javascript - 如何发布 url 编码的 json 数据并获取响应数据?