Swashbuckle/Swagger: как объявить пользовательский тип для аннотаций OpenAPI, не используя его в качестве параметра запр ⇐ C#

Место общения программистов C#
Anonymous
Swashbuckle/Swagger: как объявить пользовательский тип для аннотаций OpenAPI, не используя его в качестве параметра запр

Сообщение Anonymous »

У меня есть действие в моем приложении ASP.net Core, которое необходимо вручную загрузить корпус запроса в качестве потока с помощью httpcontext.request.body . В этом случае я не могу использовать DTO в качестве параметра запроса. Тем не менее, я все равно хотел бы объявить пользовательский тип для аннотаций OpenAPI и документации, даже если DTO не будет использоваться для обработки корпуса запроса.

Код: Выделить всё

[HttpPost]
[Route("api/upload")]
[Consumes("multipart/form-data")]
[ProducesResponseType(StatusCodes.Status204NoContent)]
public async Task UploadDataAsync()
{
// Use the HttpContext.Request.Body to read the body manually

return NoContent();
}
< /code>
Мне нужно объявить пользовательский тип в качестве полезной нагрузки. Что-то вроде этого: < /p>
[HttpPost]
[Route("api/upload")]
[Consumes("multipart/form-data")]
[ProducesResponseType(StatusCodes.Status204NoContent)]
[SwaggerRequestBody(typeof(SomeDTO))] /* Something like this attribute! */
public async Task UploadDataAsync()
{
// Use the HttpContext.Request.Body to read the body manually

return NoContent();
}
< /code>
Обратите внимание, что DTO используется только для указания аннотаций OpenAPI и фактически не используется в обработке запросов. Я хочу обеспечить точную документацию API, в то время как вручную обрабатываю тело запроса с помощью httpcontext.request.body 
. Я знаю, что я могу реализовать пользовательский ioperationfilter , но это потребует вручную создавать схему со всеми свойствами. Я ищу более простой подход, который позволяет самому создавать схему.


Подробнее здесь: https://stackoverflow.com/questions/765 ... ons-withou

Вернуться в «C#»