Como diz o título desta pergunta, como eu poderia fazer uma solicitação GET com Fast Endpoints em ASP.NET
Agora tentei fazer isso:
using api.Blogs.Shared;
using api.Data;
using AutoMapper;
using FastEndpoints;
using Microsoft.EntityFrameworkCore;
namespace api.Blogs.ListBlogsEndpoint;
public class ListBlogsEndpoint(BlogDbContext context, AutoMapper.IMapper mapper) : Endpoint<ListBlogsRequest, BlogResponse[]>
{
public override void Configure()
{
Get("blogs");
}
public override async Task HandleAsync(ListBlogsRequest req, CancellationToken ct)
{
var blogs = await context.Blogs.ToArrayAsync(ct);
var response = blogs.Select(b => mapper.Map<BlogResponse>(b)).ToArray();
await SendOkAsync(response, ct);
}
}
Mas quando tento fazer uma solicitação get, recebo o seguinte erro:
TypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method could not have body.
Não sei o que fazer agora, pesquisei sobre isso e parece que a solicitação em uma solicitação GET deveria ser parâmetros de consulta, mas eles são usados aqui como um corpo
EDIT: Estou usando o swagger e ele me dá um corpo, então acho que se eu usar o carteiro tudo bem.
provavelmente você errou na configuração do middleware. o seguinte funciona imediatamente:
você pode ter chamado métodos swagger que usam swashbuckle (agora abandonado), que não é suportado por pontos de fixação. faça o middleware swagger conforme explicado na documentação aqui .