
Progettazione di API REST
Principi REST, versioning, paginazione, filtraggio, HATEOAS, codici di stato, OpenAPI/Swagger
1Qual è il principio fondamentale di REST?
Qual è il principio fondamentale di REST?
Risposta
REST si basa sul principio di rappresentare risorse accessibili tramite URI univoci. Ogni risorsa (utente, prodotto, ordine) ha una URI e può essere manipolata tramite i verbi HTTP standard (GET, POST, PUT, DELETE). Questo paradigma orientato alle risorse consente un'architettura scalabile e disaccoppiata in cui il server non memorizza lo stato della sessione del client.
2Quale metodo HTTP usare per un'operazione idempotente di aggiornamento completo di una risorsa?
Quale metodo HTTP usare per un'operazione idempotente di aggiornamento completo di una risorsa?
Risposta
PUT è idempotente e sostituisce completamente la risorsa. Chiamare PUT più volte con gli stessi dati produce lo stesso risultato di una singola chiamata. Al contrario, POST non è idempotente (creerebbe più risorse), PATCH esegue aggiornamenti parziali e DELETE rimuove la risorsa. L'idempotenza di PUT garantisce la sicurezza dei retry in caso di errori di rete.
3Quale codice HTTP restituire dopo la creazione riuscita di una nuova risorsa?
Quale codice HTTP restituire dopo la creazione riuscita di una nuova risorsa?
Risposta
Il codice 201 Created indica che una risorsa è stata creata con successo. È accompagnato da un header Location che punta alla URI della nuova risorsa. Il codice 200 OK è troppo generico per una creazione, 204 No Content si usa quando non c'è corpo della risposta, e 202 Accepted segnala un'elaborazione asincrona non ancora completata.
Quale differenza importante distingue un'API REST da un'API RPC?
Cosa significa il principio di statelessness in REST?
+17 domande da colloquio
Altri argomenti di colloquio Go
Fondamenti di Go
Strutture dati in Go
Interfacce in Go
Gestione degli errori
Goroutine di base
Channels
Go Modules
Server HTTP
Client HTTP
Codifica JSON
Database/SQL
Pacchetto context
Testing
Pattern di concorrenza
Primitive di sincronizzazione
Framework web Go
gRPC
Reflection
Gestione della memoria
Ottimizzazione delle prestazioni
Generics
Go Design Patterns
Microservices
Sicurezza e autenticazione
Docker & Containerization
Kubernetes Basics
Go Avanzato
Sviluppo CLI
Padroneggia Go per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis