2012-10-19 64 views
20

我已经在C#中创建了一个REST风格的Web服务,并已将其部署到IIS。当我访问服务HeadOffice.svc时,我可以选择查看WSDL(HeadOffice.svc?wsdl)。我想要做的是可以选择查看WADL(例如HeadOffice.svc?wadl)。这可能吗?REST风格的Web服务自动生成WADL

我已经阅读了一般意见认为这不是最佳实践的地方。不过,我需要WADL来完成一个学校任务,所以任何帮助都会非常感激。

回答

17

假设你已经知道WADL不是标准的/不被广泛支持。而当有人需要WADL时,最好使用WS */SOAP服务+ WSDL。所以你的任务看起来很奇怪。

无论如何,WADL在微软的任何REST实施中都不支持“开箱即用”,既没有WCF 3.5 Rest Starter Kit,也没有WCF 4 REST和ASP.NET WebAPI。

WADL for .NET没有可靠的工具。

当您的目标是使用WADL生成C#客户端代码时,请相信我,您将花更多时间来自己编写客户端代码。对此有更好的解决方案。

您可以使用新的类,如HttpClient类或RestSharp或类似的库可以轻松地手动编写你的客户,这将是更快然后使用Google为.NET

类似问题的可靠解决方案WADL计算器上:Restful service in .NET with WADL instead of WSDL

UPDATE - Swagger: 多年来swagger已经确立了自己的格式。您可以使用Swagger的YAML在Swagger editor中编写服务定义,或者使用Swashbuckle库从现有服务生成Swagger。第二个是我们使用WSDL的东西,而Swagger编辑器让您生成客户端和服务器样板。无论您是生成服务器还是客户端,还是不喜欢它,swagger实际上都是REST服务的非常好的合同交换格式,不是理想的选择。

+0

感谢您的信息!我打算从WADL生成Java代码。不过,看起来我需要揉一下WADL以外的其他路径。 –

+0

第一个链接完全没用,看起来像你已经链接到一个甚至没有任何源代码的项目。重点是什么? –

+0

德米特里Nesteruk点是WADL像那个链接死了.NET和过时。最好手动编写服务访问权限,然后尝试使用WSDL SOAP风格生成 – Regfor