Возможно ли иметь сложный тип запроса, сочетающий в себе FromHeader, FromRoute, FromQuery и FromBody?C#

Место общения программистов C#
Anonymous
Возможно ли иметь сложный тип запроса, сочетающий в себе FromHeader, FromRoute, FromQuery и FromBody?

Сообщение Anonymous »

Как следует из названия, я пытаюсь создать объект DTO следующим образом:

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

public class RequestDto
{
[FromHeader]
public string correlationId;

[FromRoute]
public string Id { get; set; }

[FromQuery]
public string Status { get; set; }
}
и когда я использую его следующим образом

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

[HttpGet("{id}/enrollments")]
public async Task GetEnrollments(RequestDto request){...}
и попытайтесь протестировать конечную точку, заполнив ее через Swagger, который продолжает генерировать завиток, как:

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

curl -X 'GET' \
'http://localhost:8080/{id}/entrollments?Status=Enrolled' \
-H 'accept: text/plain'
-H 'x-correlation-id: 12343'
ответ

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

{
"errors":{
"id":"{id}",
"message":"id not found"
}
}
Литеральная строка "{id}" заполняется в поле Id. И это отлично работает, когда запрос отправляется через бессонницу, почтальона или с помощью завитка, например

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

curl -X 'GET' \
'http://localhost:8080/1234/enrollments?Status=Enrolled' \
-H 'accept: text/plain'
ответ

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

{
"id":"1234"
"entrollments":[
"TEST-1"
]
}
Почему пользовательский интерфейс Swagger продолжает генерировать неверный URL-адрес?
Не рекомендуется ли иметь несколько атрибутов привязки в общем сложном классе, даже если каждый атрибут привязки используется однократно?
Существует ли какое-либо несоответствие в поведении, когда DTO запроса имеет несколько привязок источника?>

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