Erick Kurniawan

Microsoft Certified Trainer, Microsoft MVP for +15y on Developer Technologies

Minimal API & .NET 8

Pada blog kali ini akan dibahas bagaimana cara membuat REST API menggunakan template Minimal API dan .NET 8.

Apa itu Minimal API?

ASP.NET Core Minimal API adalah pendekatan baru yang dapat digunakan untuk membuat API dengan menggunakan ASP.NET Core. Pendekatan ini dapat dilakukan mulai dari .NET versi 6. ASP.NET Core Minimal API sendiri memiliki performa yang sedikit lebih cepat jika dibandingkan dengan pendekatan MVC, karena lebih ringan (lightwight), dan memiliki desain yang lebih sederhana. Minimal API juga mendukung fitur yang sudah ada pada pendekatan MVC seperti routing, parameter binding, basic serialization, dan basic filter.

Kapan menggunakan Minimal API?

ASP.NET Core Minimal API cocok digunakan jika ingin membuat API yang simple tanpa kompleksitas pattern yang ada pada MVC. Minimal API cocok digunakan untuk aplikasi yang menerapkan Microservices Architecture, aggregate.proxy API, atau API yang relatif kecil secara ukuran. Namun tidak semua fitur yang ada pada ASP.NET Web API MVC didukung pada Minimal API. Berikut adalah beberapa fitur yang tidak didukung pada Minimal API.

– Minimal API tidak mendukung model validation.
– Tidak mendukung JSONPatch
– Tidak mendukung Filters
– Tidak mendukung custom model binding

Jika fitur diatas diperlukan pada project yang akan dibuat, maka disarankan untuk menggunakan MVC pattern.

Membuat Project ASP.NET Core Minimal API

Untuk membuat project minimal API pada Visual Studio Code buat project, dan pilih template ASP.NET Core Web API, maka secara default Visual Studio Code project akan membuat API project dengan pendekatan minimal API.

1. Buat project baru pada dengan nama CatalogServices dengan menggunakan Visual Studio Code.

2. Struktur dari Minimal API lebih simpel dari MVC, dapat dilihat bahwa tidak ada folder Controller seperti pada MVC project.

3. Pada Minimal API semua kode ada pada file Program.cs

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseHttpsRedirection();

var summaries = new[]
{
    "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};

app.MapGet("/weatherforecast", () =>
{
    var forecast =  Enumerable.Range(1, 5).Select(index =>
        new WeatherForecast
        (
            DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
            Random.Shared.Next(-20, 55),
            summaries[Random.Shared.Next(summaries.Length)]
        ))
        .ToArray();
    return forecast;
})
.WithName("GetWeatherForecast")
.WithOpenApi();

app.Run();

record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary)
{
    public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
}

5. Pada Program.cs sudah ada contoh method untuk menampilkan API WeatherForecast. Jalankan aplikasi tersebut untuk melihat hasilnya.
6. Akses url http://localhost:<port>/weatherforecast, maka hasilnya dapat dilihat sebagai berikut:

Pada blog selanjutnya akan dibahas bagaimana membuat web api method untuk kebutuhan CRUD

Published by

Leave a comment