Today I built a lightweight Web API using ๐๐ฆ๐ฃ.๐ก๐๐ง ๐๐ผ๐ฟ๐ฒ ๐ ๐ถ๐ป๐ถ๐บ๐ฎ๐น ๐๐ฃ๐๐ and ๐๐ป๐๐ถ๐๐ ๐๐ฟ๐ฎ๐บ๐ฒ๐๐ผ๐ฟ๐ธ ๐๐ผ๐ฟ๐ฒ, adding ๐ฎ๐๐๐ต๐ฒ๐ป๐๐ถ๐ฐ๐ฎ๐๐ถ๐ผ๐ป ๐ฎ๐ป๐ฑ ๐ฎ๐๐๐ต๐ผ๐ฟ๐ถ๐๐ฎ๐๐ถ๐ผ๐ป.
Minimal APIs help reduce boilerplate code and are ideal for small services or microservices.
Hereโs what I implemented:
- CRUD operations for a simple
TaskItem
model. - Integrated EF Core with a SqlServer database.
- Secured the API using JWT-based authentication and role-based authorization.
๐๐ ๐ฎ๐บ๐ฝ๐น๐ฒ: ๐๐ฒ๐ณ๐ถ๐ป๐ถ๐ป๐ด ๐ฎ ๐ฟ๐ผ๐๐๐ฒ
RouteGroupBuilder taskItems = app.MapGroup("/tasks");
taskItems.MapGet("/{id}", GetTask)
.RequireAuthorization();
static async Task GetTask(int id, AppDbContext db)
{
return await db.Tasks.FindAsync(id)
is TaskItem task
? TypedResults.Ok(new TaskItemDTO(task))
: TypedResults.NotFound();
}
๐๐ ๐ฎ๐บ๐ฝ๐น๐ฒ: ๐๐ฑ๐ฑ๐ถ๐ป๐ด ๐ฎ ๐๐ฎ๐๐ธ
taskItems.MapPost("/", CreateTask)
.RequireAuthorization();
static async Task CreateTask(TaskItemDTO taskItemDTO, AppDbContext db)
{
//Convert DTO to model.
db.Tasks.Add(taskItem);
await db.SaveChangesAsync();
taskItemDTO = new TaskItemDTO(taskItem);
return TypedResults.Created($"/taskitems/{taskItem.Id}", taskItemDTO);
}
This approach is clean, fast, and perfect for RESTful APIs.
๐๐ผ๐ ๐ฑ๐ผ ๐๐ผ๐ ๐ฝ๐ฟ๐ฒ๐ณ๐ฒ๐ฟ ๐ฏ๐๐ถ๐น๐ฑ๐ถ๐ป๐ด ๐๐ฃ๐๐โ๐ ๐ถ๐ป๐ถ๐บ๐ฎ๐น ๐๐ฃ๐๐ ๐ผ๐ฟ ๐๐ฟ๐ฎ๐ฑ๐ถ๐๐ถ๐ผ๐ป๐ฎ๐น ๐ ๐ฉ๐ ๐๐ผ๐ป๐๐ฟ๐ผ๐น๐น๐ฒ๐ฟ๐? ๐๐ป๐ฑ ๐๐ต๐?
Top comments (1)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.