Проблемы с файлом .http, созданным Microsoft Endpoint ExplorerC#

Место общения программистов C#
Ответить
Anonymous
 Проблемы с файлом .http, созданным Microsoft Endpoint Explorer

Сообщение Anonymous »

Я следую руководству MS, которое создает минимальный API в ASP.NET Core 8.0 и использует Endpoint Explorer в Visual Studio 2022 для создания файла .http для проверки конечных точек API.
Код для модели:

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

public class Todo
{
public int Id { get; set; }
public string? Name { get; set; }
public bool IsComplete { get; set; }
}
Код для контекста базы данных:

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

using Microsoft.EntityFrameworkCore;

class TodoDb : DbContext
{
public TodoDb(DbContextOptions options)
: base(options) { }

public DbSet Todos => Set();
}
Код для API:

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

using Microsoft.EntityFrameworkCore;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext(opt => opt.UseInMemoryDatabase("TodoList"));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();

var app = builder.Build();

app.MapGet("/todoitems", async (TodoDb db) =>
await db.Todos.ToListAsync());

app.MapGet("/todoitems/complete", async (TodoDb db) =>
await db.Todos.Where(t => t.IsComplete).ToListAsync());

app.MapGet("/todoitems/{id}", async (int id, TodoDb db) =>
await db.Todos.FindAsync(id)
is Todo todo
? Results.Ok(todo)
: Results.NotFound());

app.MapPost("/todoitems", async (Todo todo, TodoDb db) =>
{
db.Todos.Add(todo);
await db.SaveChangesAsync();

return Results.Created($"/todoitems/{todo.Id}", todo);
});

app.MapPut("/todoitems/{id}", async (int id, Todo inputTodo, TodoDb db) =>
{
var todo = await db.Todos.FindAsync(id);

if (todo is null) return Results.NotFound();

todo.Name = inputTodo.Name;
todo.IsComplete = inputTodo.IsComplete;

await db.SaveChangesAsync();

return Results.NoContent();
});

app.MapDelete("/todoitems/{id}", async (int id, TodoDb db) =>
{
if (await db.Todos.FindAsync(id) is Todo todo)
{
db.Todos.Remove(todo);
await db.SaveChangesAsync();
return Results.NoContent();
}

return Results.NotFound();
});

app.Run();
Мы тестируем часть данных публикации здесь:

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

app.MapPost("/todoitems", async (Todo todo, TodoDb db) =>
{
db.Todos.Add(todo);
await db.SaveChangesAsync();

return Results.Created($"/todoitems/{todo.Id}", todo);
});
Затем в руководстве предлагается использовать Endpoints Explorer в VS2022 для генерации запроса (), что я и сделал.
Изображение

Вот код в файле .http:

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

@TodoApi_HostAddress = https://localhost:7284

Post {{TodoApi_HostAddress}}/todoitems
Content-Type: application/json

{
"name":"walk dog",
"isComplete":true
}

###
Проблема, с которой я столкнулся, заключается в том, что когда я запускаю проект, нажимаю ссылку «Отправить запрос» в файле .http, я получаю сообщение об ошибке «Последний запрос имел ошибки. Нажмите, чтобы отправить новый запрос». и панель ответов не отображается в VS.
Изображение

Ошибка:
Изображение

Однако, когда я тестирую это с помощью Postman, у меня нет проблем:
Изображение

Есть идеи, что я сделал не так?
Заранее спасибо и счастливого Рождества

Подробнее здесь: https://stackoverflow.com/questions/776 ... -http-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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