【问题标题】:can ASMX web services be made REST api's? [closed]可以将 ASMX Web 服务制作成 REST api 吗? [关闭]
【发布时间】:2020-02-25 01:08:31
【问题描述】:

所以我读到 SOAP 使用 HTTP 而 ASMX Web 服务使用 SOAP,那么为什么 ASMX Web 服务与 REST 不兼容?

我有一个包含方法的 ASMX Web 服务,是否可以使用 REST API 样式调用此方法?

【问题讨论】:

标签: c# rest soap asmx


【解决方案1】:

您可以通过使用 get/post 动词来接近 REST,但 imo REST 的最佳之处在于人类可读的 json,而您无法使用 asmx 实现这一点。

【讨论】:

    【解决方案2】:

    比这要复杂一些。 SOAP Web-Services 对进行 XML 点对点交换的 HTTP 请求进行抽象。您调用 web 方法并获得结果,始终是 XML 响应。您不必担心它是 PUT 还是 GET 请求 - 或者适当的请求动词是 POST。

    在 REST 中,您的工作接近于 http 级别。您根据 GET 或 PUT 请求中参数的 url 查询返回结果; POST 请求,您可以在请求正文中嵌入 json 文本(这在 ASP Net Core Web API 中很常见)。 如果您想要用户配置文件的 json 响应,您可以为 http://myserver.com/user/{UserId} 创建一个 http GET 请求。您甚至可以从浏览器地址栏中执行此操作。

    考虑到像在 SOAP 中返回 zip 文件这样的简单操作意味着 zip 文件需要在嵌入到 SOAP XML 响应之前进行编码。在 REST 中,您只需使用 ContentType = application/zip 发送标记 http 响应的字节流。 没有 SOAP 信封,没有编码,没有嵌入 XML。

    免责声明:如果它看起来过于简单,那是故意的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多