Я устанавливаю конечную точку REST, которая выглядит следующим образом:
[WebInvoke(Method = "POST", UriTemplate = "?format=json", BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json)]
и
[WebInvoke(Method = "DELETE", UriTemplate = "?token={token}&format=json", ResponseFormat = WebMessageFormat.Json)]
Выше выдается следующая ошибка:
UriTemplateTable does not support '?format=json' and '?token={token}&format=json' since they are not equivalent, but cannot be disambiguated because they have equivalent paths and the same common literal values for the query string. See the documentation for UriTemplateTable for more detail.
Я не эксперт в WCF, но я думаю, что он должен отображаться сначала с помощью метода HTTP, а затем с помощью шаблона URI.Кажется, это задом наперед.Если оба моих URI-шаблона имеют вид:
?token={token}&format=json
Это работает, потому что они эквивалентны, и затем кажется, что он смотрит на метод HTTP, где один - POST, а другой - DELETE.
IsREST должен работать таким образом?Почему таблицы шаблонов URI не сортируются сначала по методу HTTP, а затем по шаблону URI?Это может вызвать некоторые серьезные расстройства, когда 1 метод HTTP требует параметр, а другой - нет, или если я хочу сделать необязательные параметры (например, если параметр 'format' не передан, по умолчанию используется XML).