【问题标题】:How can I discover the contract of a non-SOAP web API?如何发现非 SOAP Web API 的契约?
【发布时间】:2010-05-01 13:44:58
【问题描述】:

假设我有 RESTful 或其他无合同 API 的 URI。是否可以以编程方式确定其接口?我正在使用 C#/ASP.net MVC,不确定这是否重要。

我知道不会发布合同,但我想知道是否有什么我没有想到的(通常有)。

【问题讨论】:

    标签: rest soap xml-rpc


    【解决方案1】:

    没有。不幸的是,你是对的。除了已发布的文档之外,通常没有与 RESTful API 签订的合同。

    【讨论】:

      【解决方案2】:

      如果系统是 RESTful,则返回的表示将为您提供指向可用端点的链接。这些链接很容易以编程方式发现。请参阅this 示例。

      内容类型 HTTP 标头应该告诉您正在返回什么类型的信息。假设您的客户端应用程序了解该媒体类型,那么您应该拥有使用该服务所需的所有信息。

      不幸的是,返回诸如 application/xml 和 application/json 之类的通用媒体类型已变得司空见惯,它们只告诉您有关内容的更多信息,而只是如何解析它。如果是这种情况,那么您的客户端将需要存储一些关于预期来自特定 URL 的数据类型的附加信息。这是令人讨厌的耦合,但在人们真正开始理解“自我描述”REST 约束之前,这是一种必要的邪恶。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-12-02
        • 1970-01-01
        • 1970-01-01
        • 2011-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多