ReST代理对象生成器

时间:2011-05-23 12:31:19

标签: .net rest code-generation

第三方公司编写了一套ReST服务。我已经掌握了所有代码,但事后看来,为了删除一些腿部工作,我想有人可能知道连接到ReST服务的代码生成器,并确定需要创建哪些请求和响应对象并生成那些代码。我看了谷歌,但没有看到任何合适的东西(也许它被称为别的东西)。

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

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

除非服务的发布者以某种形式专门发布有关其服务的元数据,否则我真的不敢这样做。然后它将是一个专有的扩展,你必须专门针对自己编码。

REST中没有任何内置功能可以启用自我描述,因此无法知道哪些集合等可用,或者在实际调用它之前需要/暴露哪些对象。

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

因此,您将受到服务作者的怜悯,并为您提供所需的信息,这些信息可由机器读取并转换为代码。

例如,如果数据是使用XML传输的,那么他们也应该(imho)发布一个或多个XML模式,这些模式描述了他们将发送给您的对象以及他们希望您发送给他们的对象。

这是最大的战斗 - 因为编写实际与REST服务接口的代码可能是最简单的;肯定比尝试编写自己的SOAP客户端好得多!

答案 2 :(得分:0)

您应该查看F#类型的提供商。他们可以从“典型”API响应中sniff types and members,因此您可以使用InteliSense和拼写检查进行这些操作。虽然断言输出的每个可能的属性并不是一种严格的方法,但它对请求没有帮助。