Sobes.tech
Junior

Cos'è l'architettura orientata a REST (ROA)?

sobes.tech AI

Risposta dell'AI

L’architettura REST (Transfer of Representational State) è uno stile architetturale per sistemi distribuiti, basato su un insieme di principi che definiscono come le risorse sono identificate e come avviene l’interazione tra client e server.

Principi fondamentali di REST:

  1. Client-Server: Separazione delle responsabilità. Il client si occupa dell’interfaccia utente, il server dell’archiviazione e dell’elaborazione dei dati.
  2. Senza stato (Stateless): Ogni richiesta del client al server deve contenere tutte le informazioni necessarie per il suo processamento. Il server non mantiene lo stato del client tra le richieste.
  3. Cacheabile: I client e i nodi intermedi possono memorizzare le risposte del server in cache per migliorare le prestazioni e la scalabilità.
  4. Interfaccia uniforme:
    • Identificazione delle risorse: Le risorse sono identificate in modo univoco tramite URL.
    • Manipolazione delle risorse tramite rappresentazioni: Il client può manipolare le risorse usando la rappresentazione della risorsa (ad esempio, JSON, XML).
    • Messaggi auto-descrittivi: Ogni messaggio contiene abbastanza informazioni per comprenderne il trattamento.
    • Gestione dello stato dell’applicazione tramite ipermedia (HATEOAS): Il client interagisce con l’applicazione esclusivamente tramite i link ipertestuali forniti nelle risposte del server.
  5. Sistema a strati: Il sistema può essere organizzato in strati (ad esempio, proxy, gateway), e ogni componente vede solo lo strato successivo con cui interagisce.
  6. Codice su richiesta (Code-On-Demand - opzionale): Il server può temporaneamente estendere la funzionalità del client trasmettendo codice eseguibile (ad esempio, JavaScript).

In QA, i test API REST includono la verifica della conformità a questi principi, oltre a:

  • Test funzionali (metodi HTTP GET, POST, PUT, DELETE).
  • Test di carico.
  • Test di sicurezza.
  • Test di compatibilità (diversi formati di dati, clienti).