REST API progettazione domande

Un elenco di domande e concetti chiave sulla progettazione di REST API, utile per studenti universitari che vogliono comprendere meglio i principi e le pratiche di sviluppo delle API.

WolfAnna2·64 schede·64 domande
universitàcomputer_scienceweb
0
Lo so
1 / 64
0
Sto imparando
Fronte

Che cos'è un'API REST?

Tocca per girare
Retro

Un'API REST è un'interfaccia che permette la comunicazione tra client e server utilizzando il protocollo HTTP per l'interscambio di dati.

Tocca per girare
Lo so
Sto imparando

Quiz(64 domande)

Domanda 1 di 64

1. Che cos'è un'API REST?

Termini in questo set(64)

Concetti Fondamentali delle REST API(16)

Che cos'è un'API REST?

Un'API REST è un'interfaccia che permette la comunicazione tra client e server utilizzando il protocollo HTTP per l'interscambio di dati.

Principi delle REST API.

- Statelessness - Risorse identificate da URL - Utilizzo di metodi HTTP - Rappresentazione delle risorse

Vero o falso: Le REST API sono sempre stateless.

Vero, le REST API devono essere stateless, il che significa che ogni richiesta contiene tutte le informazioni necessarie per processarla.

Risorse nelle REST API.

Le risorse sono entità che possono essere rappresentate e manipolate. Ogni risorsa ha un identificatore unico, solitamente un URL.

Qual è il metodo HTTP per creare una risorsa?

Il metodo HTTP per creare una risorsa è POST. Viene utilizzato per inviare dati al server e creare una nuova risorsa.

Cos'è un endpoint?

Un endpoint è un'URL specifica in un'API REST che rappresenta una risorsa o un gruppo di risorse su cui è possibile eseguire operazioni.

Quali sono i metodi HTTP principali?

I metodi principali sono: GET, POST, PUT, DELETE. Ognuno è utilizzato per operazioni specifiche su risorse.

Cause → Effetto: perché utilizzare JSON in REST API?

JSON è leggero e facile da leggere. Facilita l'interscambio di dati tra client e server in una forma comprensibile.

Come si rappresentano le risorse nelle REST API?

Le risorse possono essere rappresentate in diversi formati, come JSON, XML o HTML. JSON è il più comune.

Che cosa significa HATEOAS?

HATEOAS sta per Hypermedia as the Engine of Application State. Permette la navigazione dinamica delle risorse attraverso link forniti dal server.

Qual è il ruolo dei codici di stato HTTP?

I codici di stato HTTP indicano il risultato di una richiesta. Ad esempio, 200 per successo, 404 per non trovato.

Vero o falso: Le REST API possono essere sia pubbliche che private.

Vero, le REST API possono essere progettate per accesso pubblico o limitato, a seconda delle necessità.

Qual è l'importanza del versioning nelle API?

Il versioning consente modifiche senza rompere la compatibilità con i client esistenti. È utile quando si introducono nuove funzionalità.

Esempio di richiesta GET.

GET /api/v1/utenti Richiede la lista degli utenti dal server.

Qual è la differenza tra PUT e PATCH?

PUT aggiorna completamente una risorsa, mentre PATCH modifica solo i campi specificati della risorsa.

Che cos'è un'API idempotente?

Un'API è idempotente se più operazioni identiche producono lo stesso risultato. Ad esempio, una richiesta DELETE è idempotente.

Metodi HTTP e Statistiche(16)

Qual è il metodo HTTP per ottenere risorse?

Il metodo HTTP per ottenere risorse è il GET. Viene utilizzato per recuperare dati senza modificare lo stato del server.

POST → ?

POST è usato per inviare dati al server. Implica una modifica dello stato o della risorsa.

VERBO PUT: scopo?

PUT è usato per aggiornare o sostituire una risorsa esistente. Se non esiste, può crearla.

DELETE: vero o falso?

Vero. DELETE elimina una risorsa dal server. È un'operazione distruttiva.

Qual è la differenza tra PUT e PATCH?

PUT sostituisce l'intera risorsa, mentre PATCH applica modifiche parziali. Utilizza meno dati.

Che cos'è un codice di stato 200?

Il codice di stato 200 indica che la richiesta è stata elaborata con successo e i dati sono restituiti.

Quando usare 404?

Il codice 404 viene usato quando la risorsa richiesta non è stata trovata sul server.

Qual è il significato di 500?

Il codice 500 indica un errore interno del server. Si verifica quando il server non riesce a completare la richiesta.

GET vs POST: confronto.

- GET: recupera dati. - POST: invia dati al server. - GET è idempotente, POST no.

Qual è il codice di stato per una richiesta non autorizzata?

Il codice di stato 401 indica che la richiesta richiede autenticazione. L'utente deve autenticarsi.

Quando si usa il metodo HEAD?

HEAD è simile a GET, ma restituisce solo le intestazioni della risposta, senza il corpo. Utile per controllare le risorse.

Quale metodo per il caricamento di file?

Il metodo appropriato è POST. Viene spesso utilizzato insieme a multipart/form-data per il caricamento.

Esempio di utilizzo PUT:

PUT /risorse/123 con dati JSON per aggiornare la risorsa con ID 123.

Qual è la funzione di OPTIONS?

OPTIONS permette di scoprire i metodi HTTP supportati da una risorsa. Ritorna le intestazioni Access-Control-Allow-Methods.

Qual è l'effetto di un codice 403?

Il codice 403 indica che l'accesso alla risorsa è vietato, anche se l'autenticazione è riuscita.

Che cosa rappresenta il codice 201?

Il codice 201 indica che una nuova risorsa è stata creata con successo sul server. Spesso usato dopo POST.

Autenticazione e Sicurezza(16)

Cos'è l'autenticazione basata su token?

Un metodo che utilizza un token per identificare l'utente, evitando l'invio di credenziali in ogni richiesta.

Vero o falso: HTTPS è obbligatorio per le API.

Vero. HTTPS fornisce una comunicazione sicura e crittografata, fondamentale per proteggere i dati.

Differenza tra OAuth e Basic Auth?

OAuth consente accesso delegato; Basic Auth invia username e password con ogni richiesta.

Come si implementa la crittografia dei dati?

Utilizzando algoritmi come AES o RSA per cifrare i dati prima della trasmissione.

Qual è il ruolo del CORS?

CORS controlla quali domini possono accedere alle risorse dell'API, prevenendo accessi non autorizzati.

Fill in the blank: JWT sta per _____

JSON Web Token, un formato per la trasmissione di informazioni tra parti in modo sicuro.

Quali sono i rischi dell'API senza autenticazione?

Accesso non autorizzato, furto di dati, modifiche indesiderate alle risorse.

Cos'è il rate limiting?

Una pratica per limitare il numero di richieste che un utente può effettuare in un dato periodo.

Quali metodi di autenticazione sono più sicuri?

- OAuth 2.0 - OpenID Connect - API Key con scadenza.

Vero o falso: Le API possono avere una scadenza per i token.

Vero. I token possono scadere per migliorare la sicurezza e ridurre il rischio di accesso non autorizzato.

Cause per cui usare HTTPS:

- Crittografia dei dati - Integrità dei dati - Autenticazione del server.

Cos'è un attacco XSS?

Cross-Site Scripting: un attacco che inietta script malevoli in pagine web per rubare informazioni.

Esempio di header per autenticazione:

Authorization: Bearer <token>

Quali sono i vantaggi di OAuth 2.0?

- Accesso delegato - Maggiore sicurezza - Facilità di integrazione.

Vero o falso: I segreti dell'API dovrebbero essere esposti nel codice sorgente.

Falso. I segreti devono essere mantenuti riservati e non inclusi nel codice sorgente pubblico.

Procedura di revoca dei token:

Disabilitare il token sul server per prevenire accessi futuri non autorizzati.

Best Practices e Error Handling(16)

Qual è la pratica migliore per gli endpoint?

Utilizzare nomi chiari e significativi per rappresentare le risorse, ad esempio /utenti invece di /getUser.

404 Not Found significa?

Il server non riesce a trovare il risorsa richiesta. Controlla l'URL.

Cosa deve restituire un'API quando si verifica un errore?

Un messaggio di errore chiaro e un codice di stato HTTP appropriato per aiutare la risoluzione.

Vero o Falso: È meglio restituire sempre 200 OK.

Falso: Restituire i codici di stato corretti aiuta a comprendere il risultato della richiesta.

Quali informazioni includere nel messaggio di errore?

- Codice di errore - Messaggio descrittivo - Eventuale ID del tracciamento

Esempio di pratica consigliata per la paginazione?

Utilizzare parametri come ?pagina=2&limite=10 per controllare quale pagina e quanti risultati restituire.

Cosa rappresenta il codice 500?

Errore interno del server. Indica che qualcosa è andato storto sul server.

Qual è l'importanza della documentazione delle API?

Aiuta gli sviluppatori a comprendere come utilizzare l'API correttamente e conoscere i possibili errori.

Come gestire le limitazioni di richiesta?

Implementare un sistema di rate limiting per prevenire l'abuso dell'API e garantire prestazioni.

Qual è il formato migliore per fornire errori?

JSON è preferibile, poiché è facilmente leggibile e manipolabile dai client.

Cosa fare se un'API è temporaneamente non disponibile?

Restituire un codice 503 Service Unavailable e un messaggio che indica di riprovare più tardi.

Qual è la differenza tra 4xx e 5xx?

4xx indica errori del client, mentre 5xx indica errori del server.

Come migliorare l'affidabilità delle API?

Utilizzare meccanismi di retry per gestire errori temporanei e garantire che le richieste siano completate.

Cosa significa 'validazione dei dati'?

Controllare che i dati in ingresso soddisfino i requisiti prima di processarli per evitare errori.

Qual è il vantaggio del logging degli errori?

Consente di monitorare e diagnosticare problemi, migliorando la manutenzione e l'affidabilità dell'API.

Qual è la chiave per una buona gestione degli errori?

Fornire messaggi chiari e utili che guidino gli sviluppatori a risolvere i problemi.

Domande in questo set(64)

1. Che cos'è un'API REST?

A.Un'API che utilizza HTTP per comunicare
B.Un'applicazione desktop
C.Un linguaggio di programmazione
D.Un protocollo di rete

2. Cos'è l'autenticazione a due fattori?

A.Un metodo che richiede due forme di verifica per accedere a un'API.
B.Un sistema che utilizza solo username e password.
C.Un'implementazione di OAuth.
D.Un modo per crittografare i dati.

3. Qual è la pratica migliore per la gestione degli errori in un'API?

A.Restituire un messaggio descrittivo insieme al codice di stato.
B.Utilizzare sempre il codice 200 OK per ogni risposta.
C.Non restituire alcun messaggio in caso di errore.
D.Limitarsi a restituire un messaggio generico.

4. Qual è il metodo HTTP per inviare dati al server?

A.POST
B.GET
C.DELETE
D.OPTIONS

5. Quale dei seguenti è un principio fondamentale delle REST API?

A.Statelessness
B.Persistenza delle sessioni
C.Utilizzo di cookie
D.Comunicazione via WebSocket

6. Qual è uno svantaggio dell'uso di Basic Auth?

A.Le credenziali vengono inviate in chiaro.
B.Richiede più tempo per essere implementato.
C.Non è compatibile con HTTPS.
D.Non permette accesso delegato.

7. Cosa indica il codice di stato 403 Forbidden?

A.L'utente non ha i permessi per accedere alla risorsa.
B.La risorsa richiesta è stata trovata.
C.C'è un errore interno del server.
D.La richiesta è stata elaborata con successo.

8. Qual è il codice di stato per una risorsa che non può essere trovata?

A.404
B.200
C.500
D.403

9. Qual è il metodo HTTP utilizzato per aggiornare una risorsa esistente?

A.PUT
B.GET
C.POST
D.DELETE

10. Quale dei seguenti protocolli è considerato più sicuro per autenticare gli utenti?

A.OAuth 2.0
B.Basic Auth
C.Form-based Auth
D.API Key senza scadenza

11. Quando è opportuno restituire un codice 429 Too Many Requests?

A.Quando un client supera il limite di richieste consentite.
B.Quando si verifica un errore di rete.
C.Quando la risorsa non è disponibile.
D.Quando c'è un errore nel server.

12. Quale metodo viene utilizzato per eliminare una risorsa?

A.DELETE
B.POST
C.PUT
D.PATCH

13. Cosa rappresenta un endpoint in un'API REST?

A.Un URL specifico
B.Un metodo HTTP
C.Una libreria di codice
D.Un database

14. Cos'è un attacco CSRF?

A.Un attacco che sfrutta la fiducia di un utente per eseguire azioni non autorizzate.
B.Un metodo per crittografare le comunicazioni.
C.Un tipo di attacco DDoS.
D.Un protocollo di sicurezza web.

15. Cosa dovrebbe contenere un messaggio di errore JSON?

A.Codice di errore, messaggio descrittivo, eventuale ID di tracciamento.
B.Solo il messaggio di errore.
C.Solo il codice di errore.
D.Nessuna informazione particolare.

16. Quando si usa il metodo PATCH?

A.Per modifiche parziali
B.Per eliminare una risorsa
C.Per ottenere dati
D.Per creare una nuova risorsa

17. Quale tra questi formati è comunemente usato per rappresentare risorse in un'API REST?

A.JSON
B.PDF
C.DOCX
D.TXT

18. Qual è il ruolo di HTTPS?

A.Fornire una connessione sicura e crittografata.
B.Ridurre la latenza delle richieste.
C.Aumentare la velocità di caricamento delle pagine.
D.Consentire l'accesso anonimo alle API.

19. Cosa significa la validazione dei dati in un'API?

A.Controllare che i dati in ingresso siano corretti e conformi.
B.Eliminare i dati superflui.
C.Generare errori casuali.
D.Restituire sempre dati predefiniti.

20. Cosa indica un codice di stato 201?

A.Creazione riuscita
B.Richiesta non autorizzata
C.Errore interno
D.Risorsa non trovata

21. Quale dei seguenti metodi HTTP non è generalmente usato per recuperare dati?

A.POST
B.GET
C.DELETE
D.HEAD

22. Cosa rappresenta un token JWT?

A.Un formato sicuro per la trasmissione di informazioni.
B.Un algoritmo di crittografia.
C.Un metodo di autenticazione senza password.
D.Un sistema di gestione delle sessioni.

23. Cosa rappresenta il codice di stato 401 Unauthorized?

A.L'utente non è autenticato e deve fornire credenziali valide.
B.L'API ha incontrato un errore interno.
C.La richiesta è stata elaborata correttamente.
D.La risorsa non è stata trovata.

24. Quale dei seguenti metodi è idempotente?

A.GET
B.POST
C.DELETE
D.PATCH

25. Qual è il ruolo dei codici di stato HTTP?

A.Indicano il risultato di una richiesta
B.Descrivono il formato dei dati
C.Specificano il metodo HTTP usato
D.Definiscono il tempo di risposta

26. Qual è la funzione del CORS nelle API?

A.Controllare quali domini possono accedere alle risorse.
B.Proteggere i dati di autenticazione.
C.Crittografare i dati in transito.
D.Gestire le sessioni degli utenti.

27. Qual è una pratica consigliata per la paginazione nei risultati delle API?

A.Utilizzare parametri come ?pagina=2&limite=10.
B.Restituire sempre tutti i risultati in un'unica chiamata.
C.Non fornire alcuna opzione di paginazione.
D.Utilizzare solo parametri fissi.

28. Qual è la funzione del metodo OPTIONS?

A.Scoprire i metodi supportati
B.Eliminare risorse
C.Aggiornare risorse
D.Inviare dati

29. Quale affermazione è vera riguardo al versioning delle API?

A.Permette modifiche senza rompere la compatibilità
B.È sempre obbligatorio
C.Dovrebbe essere evitato
D.Rende l'API più complessa

30. Qual è un esempio di attacco XSS?

A.Iniezione di script malevoli in una pagina web.
B.Intercettazione di pacchetti dati.
C.Furto di credenziali tramite email.
D.Accesso non autorizzato a un server.

31. Quale codice di stato restituisce un errore di server quando c'è un problema imprevisto?

A.500 Internal Server Error.
B.400 Bad Request.
C.404 Not Found.
D.200 OK.

32. Cosa rappresenta un codice di stato 403?

A.Accesso vietato
B.Richiesta elaborata con successo
C.Risorsa non trovata
D.Errore interno del server

33. Quale dei seguenti metodi è associato alla creazione di una nuova risorsa?

A.POST
B.GET
C.PUT
D.DELETE

34. Cosa significa 'rate limiting'?

A.Limitare il numero di richieste in un certo periodo.
B.Aumentare la velocità delle richieste.
C.Autenticare gli utenti più velocemente.
D.Ridurre la dimensione delle risposte.

35. Quando utilizzare un codice 503 Service Unavailable?

A.Quando il server è temporaneamente non disponibile.
B.Quando la richiesta è stata elaborata con successo.
C.Quando c'è un errore di autorizzazione.
D.Quando il client ha fatto una richiesta errata.

36. Quale metodo HTTP è usato per aggiornare una risorsa?

A.PUT
B.DELETE
C.GET
D.OPTIONS

37. Vero o falso: Le richieste DELETE sono idempotenti.

A.Vero
B.Falso
C.Dipende dal server
D.Solo in alcune condizioni

38. Qual è una buona pratica per gestire i segreti dell'API?

A.Non esporli nel codice sorgente.
B.Condividerli pubblicamente.
C.Scriverli in chiaro nei messaggi di log.
D.Utilizzarli direttamente nelle richieste API.

39. Qual è la differenza tra i codici 4xx e 5xx?

A.4xx indica errori del client, 5xx errori del server.
B.Entrambi indicano errori del server.
C.4xx sono sempre errori di rete.
D.5xx è usato solo per problemi di autorizzazione.

40. Qual è la differenza principale tra PUT e POST?

A.PUT sostituisce, POST crea
B.PUT crea, POST sostituisce
C.Sono equivalenti
D.Nessuna differenza

41. Che cosa significa HATEOAS nelle REST API?

A.Hypermedia as the Engine of Application State
B.High Availability of Data Services
C.HTTP Asynchronous Transfer Encoding
D.Hypertext Application Transfer Protocol

42. Qual è uno degli scopi principali della crittografia dei dati?

A.Proteggere i dati durante la trasmissione.
B.Ridurre la dimensione dei dati.
C.Aumentare la velocità di accesso ai dati.
D.Facilitare la condivisione dei dati.

43. Qual è l'importanza di implementare il rate limiting in un'API?

A.Prevenire l'abuso e garantire prestazioni durante picchi di richieste.
B.Ridurre il numero di errori di rete.
C.Consente a tutti di accedere illimitatamente.
D.Non ha alcun impatto sulla sicurezza.

44. Quale metodo viene utilizzato per controllare lo stato di una risorsa senza recuperare il corpo della risposta?

A.HEAD
B.GET
C.POST
D.DELETE

45. Quale dei seguenti non è un metodo HTTP standard?

A.CONNECT
B.UPLOAD
C.OPTIONS
D.TRACE

46. Qual è un beneficio dell'uso di token temporizzati?

A.Ridurre il rischio di accesso non autorizzato.
B.Aumentare la durata delle sessioni utente.
C.Facilitare l'integrazione tra servizi.
D.Migliorare la velocità delle API.

47. Qual è il vantaggio della registrazione degli errori?

A.Aiuta a monitorare e diagnosticare problemi.
B.Complica il processo di richiesta.
C.Non è necessario nella maggior parte dei casi.
D.Rende l'API più lenta.

48. Cosa indica un codice di stato 500?

A.Errore interno del server
B.Creazione riuscita
C.Accesso vietato
D.Risorsa non trovata

49. Che cos'è una richiesta idempotente?

A.Una richiesta che produce lo stesso risultato se eseguita più volte
B.Una richiesta che restituisce sempre un errore
C.Una richiesta che richiede autenticazione
D.Una richiesta che restituisce dati casuali

50. Cosa si intende per 'revoca dei token'?

A.Disabilitare un token per prevenire accessi futuri.
B.Estendere la validità di un token.
C.Creare un nuovo token per l'utente.
D.Cancellare tutti i dati dell'utente.

51. Quale formato è consigliato per restituire errori nelle API?

A.JSON è preferibile.
B.XML è sempre meglio.
C.Text/plain è più semplice.
D.HTML è il migliore.

52. Quale dei seguenti metodi non modifica lo stato del server?

A.GET
B.POST
C.PUT
D.DELETE

53. Qual è un esempio di una richiesta GET?

A.GET /api/v1/utenti
B.POST /api/v1/utenti
C.PUT /api/v1/utenti/1
D.DELETE /api/v1/utenti/1

54. Quale dei seguenti metodi di autenticazione è più complesso da implementare?

A.OAuth 2.0
B.API Key
C.Basic Auth
D.Session Cookies

55. Cosa significa 'retry' nella gestione degli errori?

A.Riprocessare una richiesta dopo un errore temporaneo.
B.Ignorare gli errori.
C.Restituire sempre un errore.
D.Annullare tutte le richieste.

56. Quale codice di stato indica una richiesta non autorizzata?

A.401
B.404
C.200
D.500

57. Qual è la differenza principale tra PUT e PATCH?

A.PUT aggiorna completamente, PATCH parzialmente
B.PATCH è più lento di PUT
C.PUT richiede autenticazione, PATCH no
D.PATCH non è un metodo standard

58. Vero o falso: È sicuro trasmettere dati sensibili in chiaro su HTTP.

A.Falso
B.Vero
C.Dipende dal contesto
D.Solo per dati non critici

59. Qual è un buon modo per garantire messaggi di errore utili?

A.Fornire dettagli chiari e indicazioni su come risolvere il problema.
B.Restituire solo un codice di errore generico.
C.Non fornire informazioni aggiuntive.
D.Utilizzare termini tecnici complessi.

60. Quale metodo è più adatto per il caricamento di file?

A.POST
B.GET
C.DELETE
D.HEAD

61. Quale dei seguenti aspetti caratterizza le API REST?

A.Devono essere stateless
B.Devono sempre utilizzare XML
C.Possono avere stati memorizzati
D.Richiedono connessioni persistenti

62. Quale tra le seguenti affermazioni descrive correttamente l'OAuth 2.0?

A.Permette l'accesso delegato senza condividere le credenziali
B.Richiede l'invio della password ad ogni richiesta
C.Utilizza solo sessioni cookie per l'autenticazione
D.Non supporta la revoca dei permessi

63. Quale delle seguenti opzioni NON è una buona pratica per il design degli endpoint nelle API?

A.Utilizzare nomi significativi per le risorse
B.Includere parametri di query chiari
C.Usare nomi generici come /risorsa
D.Organizzare gli endpoint in base alla logica delle risorse

64. Quale codice di stato indica che la richiesta è stata elaborata con successo e i dati sono stati restituiti?

A.200
B.201
C.400
D.500

Set correlati

Crea il tuo set di studio

Carica un PDF, incolla le tue note o descrivi un argomento – l'IA genera schede, quiz e altro in pochi secondi.