DEV Community

Supraja Tangella
Supraja Tangella

Posted on

๐—ค๐˜‚๐—ถ๐—ฐ๐—ธ ๐—–๐—ฅ๐—จ๐—— ๐—”๐—ฃ๐—œ ๐˜„๐—ถ๐˜๐—ต ๐—”๐˜‚๐˜๐—ต๐—ฒ๐—ป๐˜๐—ถ๐—ฐ๐—ฎ๐˜๐—ถ๐—ผ๐—ป ๐—จ๐˜€๐—ถ๐—ป๐—ด ๐—”๐—ฆ๐—ฃ.๐—ก๐—˜๐—ง ๐—–๐—ผ๐—ฟ๐—ฒ ๐— ๐—ถ๐—ป๐—ถ๐—บ๐—ฎ๐—น ๐—”๐—ฃ๐—œ๐˜€ ๐—ฎ๐—ป๐—ฑ ๐—˜๐—™ ๐—–๐—ผ๐—ฟ๐—ฒ

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);
Enter fullscreen mode Exit fullscreen mode

}

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.