如何将服务引用添加到ASP.NET Web API服务?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (58)

我有一个MVC解决方案,它为Web API服务提供了几条路线。在某些情况下,我会用一个简单的HTTP获取从JavaScript调用这些。在其他情况下,我想从一些.NET代码中调用它们,也许是另一个MVC应用程序。

有没有办法将服务引用添加到这些Web API端点,并让工具创建代理客户端和CLR类型,就像使用典型的WCF服务一样?我知道这里没有涉及到的SOAP,但我确实已经读过它是可能的,而不是如何。

提问于
用户回答回答于

不,它是REST服务。REST服务不公开用于通过服务引用创建代理的元数据(WCF数据服务除具有某种特殊形式的元数据外)。使用Web-API的HttpClient类来调用服务。

用户回答回答于

我们没有任何标准的机制来做到这一点。REST是关于构建让客户独立于服务器发展的系统。HTTP定义了一个统一的GET,PUT,POST,DELETE等接口,因此不需要方法描述。由于这两个原因,没有REST WSDL等价物,或者我应该说没有相当于REST社区中真正获得动力的等价物(即有WADL)。

REST服务中的耦合点实际上是媒体类型/主体格式。为此,我们确实支持强类型机制。在Web API中,我们发布了一个HttpClient(Nuget上的HttpClient),它允许您采用CLR类型并转换为某种表示形式。开箱即用,它支持XML和JSON。

因此,可以创建CLR类型并与客户端共享,然后在客户端上使用HttpClient。

为了创建类型本身,还有几个选项。

  1. 用手创建它
  2. 使用“粘贴为Xml”工具并使用web api的自动帮助页面功能进行复制/粘贴。

扫码关注云+社区