public class TestRequest
{
[FromHeader("x-correlation-id")]
public Guid CorrelationId { get; set; }
[BindFrom("EntityId")]
public Guid EntityId { get; set; }
}
public sealed class TestEndpoint : Endpoint<TestRequest>
{
public override void Configure()
{
Patch("{EntityId}/fulfill");
}
public override async Task HandleAsync(TestRequest req, CancellationToken cancellationToken)
{
await SendOkAsync(cancellationToken);
}
}
上面显示了 Swagger UI 中的 2 个属性,但是当我调用它时,我得到 415 Unsupported Media Type,据我所知,这是返回的,因为 FastEndpoints Endpoint<T>
发送了一个正文,即使它是空的。如果我手动将属性作为路由参数和标头发送,并设置
Content-type: application/json
标头,我可以验证这一点,这反过来会返回 JsonSerializer 错误,因为正文为 null 并且不是 json 格式。我也尝试过使用
EndpointWithoutRequest
但这不会将任何模型作为请求,因此无法设置
CorrelationId
属性,并且我找不到任何方法在端点中设置它。我想找到一种在 SwaggerUi 中显示所有标头属性和路由参数的方法,并且能够使用
发送简单的卷曲
curl -X 'PATCH' \
'.../72423509-c29b-4735-862a-9ebdd0489c05/fulfill' \
-H 'x-correlation-id: 72423509-c29b-4735-862a-9ebdd0489c05'