Sobes.tech
Junior

Quali API possono essere definite RESTful?

sobes.tech AI

Risposta dell'AI

Le API RESTful rispettano i principi dello stile architettonico REST:

  • Client-server: Separazione delle responsabilità tra client, che richiede risorse, e server, che le fornisce.
  • Stateless (Senza stato): Ogni richiesta dal client al server deve contenere tutte le informazioni necessarie per elaborarla. Il server non mantiene lo stato della sessione del client.
  • Cacheable (Cacheabile): Il server deve indicare esplicitamente o implicitamente se le risposte possono essere memorizzate nella cache dal client o da intermediari.
  • Sistema a strati: Il client non può distinguere tra una chiamata diretta al server e una tramite strati intermedi (proxy, bilanciatori di carico, ecc.).
  • Codice su richiesta (opzionale): Il server può temporaneamente estendere la funzionalità del client trasmettendo codice eseguibile (ad esempio, JavaScript).
  • Interfaccia uniforme: Il principio più importante delle API RESTful. Consiste in quattro restrizioni:
    • Identificazione delle risorse: Le risorse sono identificate tramite URL.
    • Manipolazione delle risorse tramite rappresentazioni: Il client interagisce con le risorse ottenendo le loro rappresentazioni (ad esempio, in formato JSON, XML).
    • Messaggi auto-descrittivi: Ogni messaggio contiene informazioni sufficienti per essere elaborato, inclusi metadati su come elaborare il messaggio e la risorsa.
    • HATEOAS (Hypermedia as the Engine of Application State): Il server deve contenere link ipertestuali nelle sue risposte, che permettano al client di scoprire azioni disponibili e navigare tra gli stati dell'applicazione. Questo è il principio meno frequentemente rispettato.

Le API RESTful utilizzano metodi HTTP standard (GET, POST, PUT, DELETE, PATCH) per operazioni sui risorse, identificabili tramite URI.

Ad esempio, una richiesta GET a /api/users/123 ottiene la rappresentazione dell'utente con ID 123.