【问题标题】:WCF Rest service with Multiple Operation contract具有多重操作合同的 WCF Rest 服务
【发布时间】:2018-05-10 00:52:17
【问题描述】:

我想像这样使用 Operation Contract 创建 WCF Rest 服务

public interface ICustomerService  
{  
    [OperationContract]
    [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json,  
            ResponseFormat = WebMessageFormat.Json, UriTemplate = "/GetAllCustomer/")]  
    List<CustomerDataContract> GetAllCustomer();  

    [OperationContract]
    [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json,  
            ResponseFormat = WebMessageFormat.Json, UriTemplate = "/GetSTOCK/ABC")]  
    List<CustomerDataContract> GetSTOCK();  

    [OperationContract]
    [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json,  
            ResponseFormat = WebMessageFormat.Json, UriTemplate = "/GETSUPINFO/XYZ/ABC")]  
    List<CustomerDataContract> GETSUPINFO();   
} 

有人可以帮忙吗?

【问题讨论】:

  • 你遇到了什么问题?
  • 只有在您告诉我们您需要什么帮助时,我们才能为您提供帮助。您是否面临任何错误/问题?
  • 它对于 Filst URI 工作正常,但对于第二个和第三个 End Point Not found
  • 为什么在 GET api 中有 /ABC 和 /XYZ/ABC?如果您想将值传递给 GET api - 那么您的 UriTemplate 是错误的,应该是 /{ABC}... 还要在 ABC 的相关数据类型的方法中添加一个参数

标签: c# rest wcf


【解决方案1】:

有两种方法可以让 Restful 服务协议支持您的逻辑。第一个是更改您的 WCF 服务,您可以参考以下链接了解更多详细信息。 https://msdn.microsoft.com/en-us/library/dd203052.aspx

https://msdn.microsoft.com/en-us/library/bb412178(v=vs.90).aspx

更简单的方法是使用 WepAPI 包装您的逻辑,并让您的 WCF 服务保持原样。您还可以通过以下链接获取有关 WebAPI 的更多信息。

https://msdn.microsoft.com/en-us/library/hh833994(v=vs.108).aspx

【讨论】:

    猜你喜欢
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 2011-08-23
    相关资源
    最近更新 更多