1

我在我们公司的服务器 IIS 7.5 上有一个安静的服务。网址是http://11.52.36.251/MessagingServices/IData.svc。我使用 Restsharp/Restclient 从客户端对其进行测试。

当我将 url 放入浏览器并点击“ENTER”时,生成了 wsdl 链接。

但是听说restful服务没有wsdl,为什么我看到了呢?

我检查了服务里面的代码,有

public interface IData
{
    [OperationContract]
    [WebGet(BodyStyle=WebMessageBodyStyle.Bare,
        ResponseFormat=WebMessageFormat.Json,
        UriTemplate="/api")]
    void GetApi();

    [OperationContract]
    [WebGet(BodyStyle = WebMessageBodyStyle.Bare, 
        RequestFormat = WebMessageFormat.Json, 
        ResponseFormat = WebMessageFormat.Json, 
        UriTemplate = "/GetIData?iId={iId}&facilityId={internalId}")]
    IDTO GetIData(string iId, string internalId);
}

是假的宁静服务还是其他原因?

4

1 回答 1

1

一个 Restful 服务应该能够通过其 API 或简单可读的 HTML 文档来严格记录自己。但是,默认情况下,在 WCF 中开发的任何服务都将具有 WSDL,因此仅仅因为服务具有 WSDL 并不意味着它不是 RESTful。如果它确实是 RESTful,则服务开发人员应禁用 mex 端点以防止其 WSDL 被发布,从而确保客户端以预期的方式使用服务。

于 2013-06-05T19:43:05.453 回答