Sitemap

Dotnet Minimal Api Denemeleri

2 min readDec 5, 2021

--

.Net 6 ile Minimal Api geldi. Node.js benzeri tek bir dosyada bütün apimizi yazabiliyoruz. Kullanılabilen record yapısı ile birlikte tek sayfa içinde modelleri ile komple bir api oluşturulabiliyor.

Başlamak için öncelikle dotnet cli üzerinden minimal bir web api oluşturmamız gerekmekte:

Ardından Minimal web api projeniz oluşturulmuş olacak:

Ardından Program.cs’in içine baktığımızda bütün apimizin Program.cs’de olduğunu görmekteyiz.

Endpointler aşağıdaki gibi tanımlanabilmektedir:

app.MapGet("api/getAnil",()=>
{
Human human=new Human("anil",88,"Computer Engineer");
return human;
}
);
//That's so Node.js

Tabi direkt olarak express.js’in eski günlerini hatırlatan bu kullanım yerine aşağıdaki gibi bir kullanım daha mantıklı olacaktır.

Get Parametrelerini yine klasik webapilerdeki gibi kullanabiliyoruz:

app.MapGet("/parametredeneme",(int id,string onemli)=>
{
return id+" onemli: "+onemli;
}
);
//https://localhost:7125/parametredeneme?id=44&onemli=deneme

Aynı şekilde post isteği de aşağıdaki gibi yapılabilmekte:

app.MapPost("/postDeneme",(Human human)=>
{
return human;
}
);
//curl -H "Content-Type: application/json" -X POST -d '{"name":"bir","Age":2,"Profession":"Sociologist"}' https://localhost:7125/postDeneme/

Görüldüğü üzere kullanımı oldukça kolay

Microsoft’un kendi dökümantasyonunda aşağıdaki gibi bir yapı kurulmuş:

app.MapGet("/Model",null); app.MapGet("/Model/{id}",null); app.MapPost("/Model",null); app.MapPut("/Model/{id}",null); app.MapDelete("/Model/{id}",null);

Şeklinde tam anlamıyla bir model bazlı controller’ın yaptığı bütün işleri yapması istenmekte. Ki gerçekten de yapar.

Tabiki Http kullandığımızı hatırlıyoruz ve istediğimiz status code ile cevap oluşturabiliyoruz:

app.MapGet("/badrequest",()=>{ return Results.BadRequest("Problems"); });

Son olarak yukarıda belirttiğim /Model/{id} ‘deki id’yi nasıl aldığımıza gelelim:

app.MapGet("/birdiger/{id}",(int id)=>{
return Results.Ok(id);
}
);
//https://localhost:7125/birdiger/1446544

Evet gördüğünüz gibi gayet kullanılabilir ve Node.js 🙂 gözüken bir yapı. Özellikle küçük denemeler yaparken şimdiden kullanmaya başladım ben.

Not: Bütün Kodlar Raspberry Pi 400 üzerinde yazılmış ve çalıştırılmıştır.

Originally published at http://anilkaynr.wordpress.com on December 5, 2021.

--

--

anıl kaynar
anıl kaynar

Written by anıl kaynar

Computer Engineer,Sociologist, CSE Master Student

No responses yet