Tag: uritemplate

使用查询字符串参数消除UriTemplate匹配的歧义

我正在使用WCF 4.0来创建REST-ful Web服务。 我想要做的是根据UriTemplate中的查询字符串参数调用不同的服务方法。 例如,我有一个API,允许用户使用其驾驶执照或社会安全号码作为密钥来检索有关某人的信息。 在我的ServiceContract /接口中,我将定义两个方法: [OperationContract] [WebGet(UriTemplate = “people?driversLicense={driversLicense}”)] string GetPersonByLicense(string driversLicense); [OperationContract] [WebGet(UriTemplate = “people?ssn={ssn}”)] string GetPersonBySSN(string ssn); 但是,当我使用这两种方法调用我的服务时,我得到以下exception: UriTemplateTable不支持具有与模板’people?ssn = {ssn}’等效路径的多个模板,但具有不同的查询字符串,其中查询字符串不能通过文字值消除歧义。 有关更多详细信息,请参阅UriTemplateTable的文档。 使用UriTemplates有没有办法做到这一点? 这似乎是一种常见的情况。 非常感谢!