【问题标题】:ReST Proxy Object GeneratorReST 代理对象生成器
【发布时间】:2011-08-31 03:10:40
【问题描述】:

第三方公司编写了一套 ReST 服务。我已经完成了所有代码的工作,但事后看来,为了消除一些繁琐的工作,我认为有人可能知道一个连接到 ReST 服务并计算出需要创建和生成哪些请求和响应对象的代码生成器那些的代码。我在谷歌上看了看,但没有看到任何合适的东西(也许它被称为别的东西)。

我正在寻找类似于在 Visual Studio 中添加 Web 引用的功能,它会在其中生成代理和它需要的对象。

ReST 服务是用 Java 编写的,所以我不能使用任何好的 WCF 东西。

【问题讨论】:

    标签: .net rest code-generation


    【解决方案1】:

    恐怕这不太可能,除非服务的发布者专门以某种形式发布有关其服务的元数据;然后它将是一个专有扩展,您必须专门针对自己编写代码。

    REST 没有内置任何东西来启用自我描述,因此在您实际调用它之前,无法知道哪些集合等可用,或者它需要/公开哪些对象。

    这方面的一个例外是oData service,其中有关对象的元数据与对象集合本身一起发布 - 但 oData 是以 RESTful 方式构建的协议;这与它只是“一个 REST 服务”不同。

    因此,服务作者要勤奋为您提供所需的信息,这些信息可以被机器读取并转化为代码。

    例如,如果数据是使用 XML 传输的,那么他们还应该(恕我直言)发布一个或多个 XML 模式来描述他们将发送给您以及他们希望您发送给他们的对象。

    这是最大的战斗 - 因为编写代码以实际与 REST 服务交互可能是最简单的;当然比尝试编写自己的 SOAP 客户端要好得多!

    【讨论】:

    【解决方案2】:

    没有标准的方式来描述 RESTful 服务,因此没有工具可以为您生成此类代理。 REST 没有 wsdl(这是 Visual Studio 用于 Web 引用的)。

    您可以使用 REST 库(例如 RESTSharp)使用标准 HTTP 动词和响应代码来更轻松地调用服务,但您需要自己了解 API。

    【讨论】:

    • 谢谢,我也去看看 RESTSharp,
    【解决方案3】:

    您应该检查 F# 类型的提供程序。他们能够从“典型”API 响应中sniff types and members,因此您可以对这些进行 InteliSense 和错字检查。虽然这不是断言输出的所有可能属性的严格方法,但它不会帮助您处理请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-18
      • 2021-03-18
      • 2011-05-26
      • 2012-02-15
      • 1970-01-01
      • 2015-09-27
      • 2016-04-16
      相关资源
      最近更新 更多