#asp.net #vb.net #asp.net-web-api
#asp.net #vb.net #asp.net-web-api
Вопрос:
я создал новый проект из Visual Studio 2019 типа web api, я хочу, чтобы моя конечная точка была такой / api / products.json, но это не работает
<Route("/api/products.json")>
<HttpGet()>
Public Function RetriveData() As ListarRes
Return New ListarRes()
End
когда я запускаю проект, swagger показывает идеальный результат, но если я протестирую его, возвращается ошибка 404
в конфигурации включен MapHttpAttributeRoutes()
проблема связана с «.json», если я запрашивал
<Route("/api/products")>
это работает, так как я должен создать его пользовательский маршрут?
Комментарии:
1. Какова цель .json? Почему бы просто не использовать директивы форматирования в заголовках запроса? планируете ли вы иметь что-то вроде api / products. json и api.products.xml ?
Ответ №1:
ну, это было очень просто
asp.net веб-api — стиль использования
расширение == конкретный обработчик
итак, я создал макет обработчика, и он сработал
Public Class AppJsonExtension
Implements IHttpHandler
Public ReadOnly Property IsReusable As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
Public Sub ProcessRequest(context As HttpContext) Implements IHttpHandler.ProcessRequest
End Sub
End Class
и в web.config добавлен
<system.webServer>
<handlers>
...
<add name="JsonHandler" path="*.json" verb="*" type="TestApp.AppJsonExtension, TestApp" />
</handlers>
</system.webServer>