Sobes.tech
Junior

Cos'è un'API REST?

sobes.tech AI

Risposta dell'AI

L'API REST è uno stile architettonico per costruire sistemi distribuiti. I principi principali di REST:

  • Statelessness: Ogni richiesta dal client al server deve contenere tutte le informazioni necessarie per elaborarla. Il server non mantiene lo stato del client tra le richieste.
  • Client-Server: Separazione chiara delle responsabilità tra client e server. Il client invia richieste, il server le elabora.
  • Cacheable: Il server deve indicare se le risposte possono essere memorizzate nella cache dal client o da intermediari.
  • Sistema a strati: Il client non interagisce necessariamente direttamente con il server finale; può farlo tramite strati intermedi (proxy, bilanciatori di carico).
  • Interfaccia uniforme: Un modo unico e standardizzato di interagire tra client e server. Questo principio include:
    • Identificazione delle risorse: Le risorse (dati) sono identificate tramite URL.
    • Manipolazione delle risorse tramite rappresentazioni: Il client interagisce con le risorse, ottenendo le loro rappresentazioni (ad esempio, JSON, XML) e inviando nuove rappresentazioni per modificarle.
    • Messaggi auto-descrittivi: Ogni messaggio contiene abbastanza informazioni per capirne il trattamento.
    • HATEOAS (Hypertext As The Engine Of Application State): Le risorse devono contenere link (hiperlink) a risorse correlate e azioni disponibili.

L'API REST generalmente utilizza metodi HTTP standard per eseguire operazioni sulle risorse:

  • GET: Ottenere una risorsa o una collezione di risorse.
  • POST: Creare una nuova risorsa.
  • PUT: Aggiornamento completo di una risorsa esistente.
  • PATCH: Aggiornamento parziale di una risorsa esistente.
  • DELETE: Eliminare una risorsa.

Esempio di rappresentazione JSON di una risorsa:

{
  "id": 1, // Identificatore
  "name": "Resource Name", // Nome della risorsa
  "description": "Detailed description of the resource." // Descrizione della risorsa
}

Il testing dell'API REST include la verifica:

  • Funzionalità (correttezza delle risposte alle richieste).
  • Gestione degli errori.
  • Prestazioni.
  • Sicurezza.
  • Conformità alla documentazione.