Предположим, у меня есть пользовательское расширение .foo
, которое предполагает, что ожидаемый тип данных должен быть документом «JSON-esque». Например, допустим, у меня есть 2 форматирования, которые могут поддерживать JSON, стандартный JSON.Net и настраиваемый форматировщик JSON, который делает кокетство в документе JSON. Я только хочу, чтобы использовать второй JSON форматировщик для очень специфических вызовов API, и я могу изменить апи конечную точку в клиенте, так что я хочу сделать что-то вроде этого:WebApi: установить форматтер с помощью строки пользовательского формата
[Route("~/api/Widgets/{id:int}.{format}")]
[ResponseType(typeof(Widget))]
public async Task<HttpResponseMessage> GetWidget(int id)
{
//stuff goes here
}
как таковой, перейдя
https://myserver.com/api/Widgets/1234.foo
... отформатировать ответ с моим "специальным" форматировщиком для виджета 1234, но
https://myserver.com/api/Widgets/1234.json
... должен вернуть стандартный формат JSON документ.
Как указать, что мой пользовательский форматировщик запускается только тогда, когда идентификатор format
является «foo»? Что делать, если мне нужно поддерживать форматы «foo» и «bar» с одним и тем же форматированием?
Я хотел бы отметить, что я хорошо знаю, что это кажется глупым делом, возвращая существенно искаженный документ JSON. (Пытаясь отрезать «альтернативу» или «наилучшей практики» ответы проводы в проход ...)