Я использую WCF 4.0 для создания веб-сервиса REST-ful. То, что я хотел бы сделать, - это разные методы обслуживания, вызванные на основе параметров строки запроса в UriTemplate
.
Например, у меня есть API, который позволяет пользователям извлекать информацию о человеке, используя либо свою лицензию на водительские права, либо номер своего социального обеспечения в качестве ключа. В моем ServiceContract
/интерфейсе я бы определил два метода:
[OperationContract]
[WebGet(UriTemplate = "people?driversLicense={driversLicense}")]
string GetPersonByLicense(string driversLicense);
[OperationContract]
[WebGet(UriTemplate = "people?ssn={ssn}")]
string GetPersonBySSN(string ssn);
Однако, когда я вызываю свою службу с помощью обоих методов, я получаю следующее исключение:
UriTemplateTable не поддерживает несколько шаблонов, которые имеют эквивалентный путь как шаблон "люди? ssn = {ssn}", но имеют разные Строки запроса, в которых строки запроса не могут быть однозначно устранены литеральные значения. Дополнительную информацию см. В документации для UriTemplateTable. деталь.
Нет ли способа сделать это с помощью UriTemplates
? Это похоже на общий сценарий.
Большое спасибо!