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