【问题标题】:Web Services - Put vs Post vs Get网络服务——Put vs Post vs Get
【发布时间】:2009-07-19 21:55:33
【问题描述】:

我目前正在为另一个项目的同事审查一些代码,他们正在使用 WCF ReST Web 服务。

我担心的是,对于他们的每个方法,只指定了 HTTP 协议 POST。无论实际方法负责获取、更新还是创建记录,都是如此。

Web 服务是否应该始终遵循良好的 HTTP 协议标准来处理信息?像下面这样的方法不应该有一个 HTTP 方法“GET”而不是指定的“POST”吗?

[ServiceContract]
public interface IBranchService
{
    [OperationContract]
    [WebInvoke(
        Method="POST",
        BodyStyle = WebMessageBodyStyle.WrappedRequest,
        ResponseFormat = WebMessageFormat.Json
        )
    ]
    GridResponse GetBranchesAll(string brandCode, string branchNumber);
...

架构周围没有其他限制规定只能使用 POST。

【问题讨论】:

    标签: wcf web-services standards protocols


    【解决方案1】:

    如果不知道他们设计 API 的约束条件,就无法回答这个问题。例如,我们的 API 具有完全处理 POST 请求的能力,因为它需要由存在 GET 错误(即无法发送请求标头)并且无法发送 PUT 或 DELETE 的 Flash 调用。一些 Javascript 库也有类似的限制。

    是的,在理想情况下,它会遵守 HTTP 语义。但我们并不是生活在一个理想的世界里。您需要了解他们使用 POST 的决定是出于对 HTTP 协议语义的无知,还是出于基于调用者限制的实用主义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-20
      • 2018-08-01
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      相关资源
      最近更新 更多