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:

Instalare ASP .NET Core în Visual Studio

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.

Crearea unui proiect în Visual Studio

Î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”.

Tipul de proiect 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.

Setarea unui nume de proiect în Visual Studio 2022

Î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.

Alegerea versiunii de .NET

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

Structura unei soluții în Visual Studio

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.

Pornirea aplicației în Visual Studio

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.

Oprirea aplicației în 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.