基于 Minimal APIs 的Web API
Minimal APIs 是ASP.NET Core中快速構建 REST API 的方式,可以用最少的代碼構建全功能的REST API。比如下面三行代碼:
var app = WebApplication.Create(args);
app.MapGet("/", () => "Hello World!");
app.Run();
可以實現(xiàn)在請求網(wǎng)站根目錄結點的時候,返回"Hello World!"。
這種方式的Web API可以用于構建微服務,極簡功能的網(wǎng)站。文章來源:http://www.zghlxwxcb.cn/news/detail-686807.html
映射 HTTP 請求
下面代碼,將幾個 HTTP 請求的 url映射到 Lambda 函數(shù)中,分別是:文章來源地址http://www.zghlxwxcb.cn/news/detail-686807.html
- HTTP GET,/todoitems ,獲取所有todoitems
- HTTP GET,/todoitems/complete,獲取所有完成的todoitems
- HTTP GET,/todoitems/{id},獲取某個 id 的todoitem
- HTTP Post,/todoitems,添加一個todoitem
- HTTP PUT,/todoitems/{id},修改某個 id 的todoitem
- HTTP DELETE,/todoitems/{id},刪除某個 id 的todoitem
using Microsoft.EntityFrameworkCore;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<TodoDb>(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();
到了這里,關于ASP.NET Core 中基于 Minimal APIs 的Web API的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!