Ce este un REST API?
Dacă nu ai mai auzit până acum, sau poate ai auzit dar nu știai exact ce înseamnă termenul de “REST(ful) API”, ei bine, pe scurt, “API” e un acronim pentru Application Programming Interface și e o denumire generică pentru orice fel parte a unui sistem software menită să fie utilizată aproape întotdeauna împreună cu o aplicație cu interfață grafică.
Iar în combinația asta, aplicația cu interfață grafică joacă rol de front-end, iar API-ul joacă rol de back-end, sau server.
REST (sau Restful), în schimb, e un principiu arhitectural prin care genul ăsta de aplicații își expun funcționalitățile.
Dacă vrei să devii mai familiar cu acest concept, am scris un articol întreg pe tema asta, îl găsești aici.
Prerechizite
Înainte de a trece mai departe, fac presupunerea că ai deja cunoștințe de bază de C# și .NET, astfel că nu vom intra în detalii despre sintaxa limbajului de programare.
Dacă nu ești însă stăpân pe fundamentele limbajului C#, C# Masterclass s-ar putea să fie un punct bun de pornire pentru tine.
Pe lângă cunoștințele legate de programare cu C#, vei mai avea nevoie să instalezi Visual Studio 2022, poți descărca varianta gratuită de aici.
Încearcă să descarci varianta denumită “Community 2022”, altfel, celelalte versiuni vor avea nevoie de o licență pentru a fi utilizate pe termen lung.
Să ai grijă ca în momentul instalării, să selectezi modulul denumit “ASP.NET and web development”, va fi un ecran în timpul instalării care va arăta așa:

Dacă ai deja cunoștințele legate de programare și ai deja Visual Studio instalat, atunci nu mai trebuie să faci nimic și poți să treci direct la crearea proiectului.
Creare proiect cu Visual Studio
Deschidem acum Visual Studio și mergem pe butonul “Create a new project” din primul ecran.

În ecranul următor vei avea o listă derulantă cu toate tipurile de proiecte disponibile, iar aici ar trebui să selectezi “ASP.NET Core Web API”.

În ecranul următor va trebui să dai un nume, care va fi același atât pentru proiect cât și pentru soluția ta.
O soluție poate să cuprindă unul sau mai multe proiecte, iar denumirea ei nu trebuie neapărat să coincidă cu cea a unuia dintre proiecte, dar atunci când avem unul singur e de preferat să fie așa.
După ce am definit un nume atât pentru proiect, cât și pentru soluție, apăsăm Next.

În funcție de momentul în care vei urma acest ghid, s-ar putea ca versiunea specificată la secțiunea “Framework” să fie una diferită.
Versiunea cea mai recentă în momentul în care scriu acest articol este .NET 9.
În pasul ăsta poți să configurezi diferite integrări ale aplicației tale cum ar fi un sistem de login (Authentication type), comunicarea HTTPS, suport pentru containerizare și altele.
Pentru moment nu o să schimbăm nimic, lăsăm selecțiile implicite și mergem pe Create.

În momentul creării proiectului, Visual Studio va genera automat ceva cod, care se va afla în clasa Program.cs
.

Dacă apăsam butonul din partea de sus a ferestrei, pe care scrie “https” și are o iconiță similară cu cea de play a unei aplicații pentru redare de filme sau muzică, Visual Studio va compila și va porni aplicația noastră folosind un server web denumit Kestrel.
Vei vedea detaliile legate de adresa la care rulează aplicația ta într-o fereastră de consolă care se deschide în momentul lansării.

Dacă o să mergi la adresa: https://localhost:7050/weatherforecast
o să vezi că aplicația trimite înapoi un răspuns de forma:
[
{
"date": "2025-05-25",
"temperatureC": -5,
"summary": "Balmy",
"temperatureF": 24
},
{
"date": "2025-05-26",
"temperatureC": 8,
"summary": "Warm",
"temperatureF": 46
},
{
"date": "2025-05-27",
"temperatureC": 48,
"summary": "Mild",
"temperatureF": 118
},
{
"date": "2025-05-28",
"temperatureC": -19,
"summary": "Warm",
"temperatureF": -2
},
{
"date": "2025-05-29",
"temperatureC": -12,
"summary": "Chilly",
"temperatureF": 11
}
]
Acest răspuns vine din endpoint-ul care este definit în cod.
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");
Hai să adăugăm și noi un nou endpoint, pe lângă cel deja existent, dar înainte de a face asta trebuie să oprim aplicația folosind butonul de stop din Visual Studio.

Adăugăm codul pentru un nou endpoint începând cu linia 36.
app.MapGet("/hello", () =>
{
return "Salutare!";
});
Acum pornim din nou aplicația și mergem la adresa https://localhost:7050/hello
. Ar trebui să primim drept răspuns mesajul pe care l-am scris în instrucțiunea de return
din endpoint.
Salutare!
Concluzie
Felicitări, tocmai ai creat o aplicație de server, folosind C# și ASP .NET Core Web API.
Cantitatea de cod este atât de redusă pentru că aplicația creată folosește un concept relativ nou în ecosistemul de dezvoltare ASP .NET, denumit “Minimal API”, care reduce drastic atât compelxitatea cât și numărul de linii de cod necesare pentru a avea o astfel de aplicația gata funcțională.
În mod normal, o aplicație de genul ăsta ar fi implicat mai multe clase și șabloane arhitecturale mai complicate, dar conceptul de minimal API a ajutat la reducerea destul de semnificativă a complexității.
Cam atât pentru azi, ne auzim data viitoare.