我已经在C#中创建了一个RESTful Web服务并将其部署到IIS。访问服务HeadOffice.svc时,可以选择查看WSDL(HeadOffice.svc?wsdl)。我想做的就是可以选择查看WADL(例如HeadOffice.svc?wadl)。这可能吗?
我到处都读到,普遍认为这不是最佳实践。但是,我需要WADL来完成学校作业,因此我们将不胜感激。
最佳答案
假设您已经知道WADL不是标准的/不被广泛支持。而且,当有人需要WADL时,最好使用WS */SOAP服务+ WSDL。因此,您的任务看起来很奇怪。
无论如何,Microsoft的任何REST实现,WCF 3.5 Rest Starter Kit,WCF 4 REST和ASP.NET WebAPI都不支持“开箱即用”的WADL。
.NET的WADL没有可靠的工具。
相信我,当您的目标是使用WADL生成C#客户端代码时,您将花费更多的时间自己编写客户端代码。并且有更好的解决方案。
您可以使用HttpClient类或RestSharp类之类的新类或类似的库来轻松地手动编写客户端,与谷歌搜索适用于.NET的可靠WADL解决方案相比,它甚至更快。
关于stackoverflow的类似问题:Restful service in .NET with WADL instead of WSDL
更新-Swagger:
多年来,swagger已经确立了这种格式的地位。您可以开始使用Swagger editor中的swagger的YAML来编写服务定义,也可以使用Swashbuckle库从.NET的现有服务中生成swagger。第二个是WSDL所具有的功能,而swagger编辑器使您可以生成客户端和服务器样板。无论您是生成服务器还是客户端,无论是否生成风扇,swagger实际上都是REST服务的一种很好的契约(Contract)交换格式,不是理想的选择,而是不错的选择。
关于c# - RESTful Web服务自动生成WADL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12968007/