Appunti: API design best practices

Questo set di flashcard offre una panoramica delle migliori pratiche nel design delle API, utile per studenti universitari che vogliono approfondire le tecniche per creare interfacce di programmazione efficaci e manutenibili.

TigerAnna3·56 fiszki·56 pytania·1 wyświetleń
universitàcomputer_scienceprogramming
0
Umiem
1 / 56
0
Uczę się
Przód

Qual è l'importanza della chiarezza nei nomi delle API?

Kliknij, aby odwrócić
Tył

I nomi chiari migliorano la comprensibilità e facilitano l'uso da parte degli sviluppatori.

Kliknij, aby odwrócić
Umiem
Uczę się

Quiz(56 pytania)

Pytanie 1 z 56

1. Qual è il protocollo su cui si basa REST?

Pojęcia w tym zestawie(56)

Principi Fondamentali del Design API(16)

Qual è l'importanza della chiarezza nei nomi delle API?

I nomi chiari migliorano la comprensibilità e facilitano l'uso da parte degli sviluppatori.

Principio REST: stateless o stateful?

Stateless. Ogni richiesta deve contenere tutte le informazioni necessarie.

Quali sono i metodi HTTP principali?

- GET - POST - PUT - DELETE

Vero o falso: le API dovrebbero essere versionate sempre.

Vero. Il versionamento aiuta a gestire le modifiche senza rompere la compatibilità.

Cos'è un endpoint in un'API?

Un URL specifico che rappresenta un'operazione o una risorsa nell'API.

Come si gestisce un errore 404?

Restituire un messaggio chiaro che indica che la risorsa non è stata trovata.

Cosa significa 'idempotente' in un metodo API?

Un'operazione può essere eseguita più volte senza cambiare il risultato oltre la prima esecuzione.

Quali sono i formati di risposta comuni per le API?

JSON e XML sono i formati più usati per le risposte delle API.

Qual è il principio DRY?

Don't Repeat Yourself: evitare la duplicazione del codice nelle API.

Come si definisce la documentazione di un'API?

Deve descrivere chiaramente tutte le endpoint, metodi e parametri disponibili.

Qual è l'effetto di una buona gestione delle versioni?

Permette agli sviluppatori di aggiornare senza interrompere gli utenti esistenti.

Cosa deve contenere una risposta API ben formata?

Status, headers e body coerenti con le specifiche richieste.

Fill in the blank: Un'API dovrebbe essere _____ per facilitare l'integrazione.

Facile da usare e navigare.

Cosa significa 'scalabilità' in un design API?

La capacità dell'API di gestire un aumento del carico di lavoro senza degradare le prestazioni.

Qual è il ruolo delle intestazioni HTTP?

Forniscono metadati sulla richiesta o sulla risposta, come tipo di contenuto e autorizzazioni.

Qual è la differenza tra GET e POST?

GET recupera dati, mentre POST invia dati al server per la creazione o l'aggiornamento di risorse.

Stile e Formati delle API(20)

Che cos'è REST?

REST (Representational State Transfer) è un'architettura per progettare servizi web, basata su HTTP.

JSON vs XML: quale è più leggero?

JSON è più leggero e più facile da leggere rispetto a XML, riducendo il carico di dati.

Qual è il formato comune per le API?

Il formato più comune è JSON, utilizzato per la sua semplicità e compatibilità con JavaScript.

Vero o falso: XML supporta i commenti.

Vero. XML permette l'inserimento di commenti usando <!— commento —>.

Quali metodi HTTP sono più usati?

I metodi più comuni sono GET, POST, PUT, DELETE.

Quale convenzione di denominazione è consigliata per le risorse?

Usare nomi al plurale per le risorse, ad esempio /utenti invece di /utente.

Che cos'è GraphQL?

GraphQL è un linguaggio di query per API, che consente di richiedere solo i dati necessari.

JSON: come rappresentare un array?

Un array in JSON è rappresentato come: [1, 2, 3].

Vero o falso: le API devono restituire sempre lo stesso formato.

Falso. Le API possono supportare più formati, come JSON e XML, in base alle esigenze.

Che significa HATEOAS?

HATEOAS (Hypermedia As The Engine Of Application State) è un principio di REST che fornisce link dinamici nelle risposte.

Qual è la differenza tra API pubbliche e private?

Le API pubbliche sono accessibili a tutti, mentre le API private sono limitate a un utilizzo interno.

Quale è il formato più usato per la documentazione API?

Swagger è uno dei formati più usati per documentare le API.

Cause e effetti: perché usare il versionamento?

Il versionamento permette di mantenere la compatibilità e gestire modifiche senza rompere le integrazioni esistenti.

Che cos'è un endpoint?

Un endpoint è un URL che rappresenta una risorsa specifica in un'API.

Quali sono i tipi di contenuto comuni nelle API?

I tipi di contenuto comuni includono application/json, application/xml, text/html.

Vero o falso: le API dovrebbero essere stateless.

Vero. Le API stateless non mantengono informazioni sullo stato tra le richieste.

Esempio di endpoint RESTful.

/api/utenti/1 per ottenere l'utente con ID 1.

Qual è l'importanza dei codici di stato HTTP?

I codici di stato HTTP comunicano il risultato della richiesta, come 200 per successo o 404 per non trovato.

Cosa rappresenta il termine 'payload'?

Il payload è la parte di una richiesta o risposta contenente i dati reali scambiati.

Che cos'è un webhook?

Un webhook è un metodo per ricevere dati in tempo reale dalle API quando si verifica un evento.

Sicurezza e Autenticazione(12)

Cos'è l'autenticazione nelle API?

L'autenticazione è il processo di verifica dell'identità di un utente o di un'applicazione che tenta di accedere a un'API.

Qual è la differenza tra autenticazione e autorizzazione?

L'autenticazione verifica chi sei, mentre l'autorizzazione determina cosa puoi fare dopo l'autenticazione.

Vero o falso: HTTPS è importante per la sicurezza delle API.

Vero. HTTPS cripta i dati durante il trasferimento, proteggendo le informazioni sensibili da intercettazioni.

Quali sono i metodi comuni di autenticazione?

- Basic Auth - Token Bearer - OAuth - API Key

Compila il vuoto: OAuth è un protocollo di ___ per autorizzare l'accesso alle API.

OAuth è un protocollo di autorizzazione per autorizzare l'accesso alle API.

Qual è il ruolo dei token JWT nelle API?

I token JWT (JSON Web Tokens) vengono utilizzati per l'autenticazione e l'autorizzazione, consentendo comunicazioni sicure tra client e server.

Cos'è il rate limiting?

Il rate limiting è una pratica di sicurezza che limita il numero di richieste che un utente può effettuare a un'API in un dato periodo di tempo.

Quali sono i rischi delle API non protette?

- Accesso non autorizzato - Furto di dati - Attacchi DDoS

Vero o falso: Le chiavi API devono essere esposte nel codice sorgente.

Falso. Le chiavi API devono essere mantenute segrete e non esposte nel codice sorgente.

Causa → Effetto: Un attacco CSRF può portare a ___

Un attacco CSRF può portare a operazioni non autorizzate eseguite dall'utente sulla tua API.

Qual è l'importanza della validazione dell'input?

La validazione dell'input è cruciale per prevenire attacchi come SQL Injection e XSS, garantendo l'integrità dei dati.

Esempio di autenticazione: Come funziona API Key?

Un client include una chiave API nelle richieste. Il server verifica la chiave e concede l'accesso se valida.

Versionamento e Manutenzione delle API(8)

Cos'è il versionamento delle API?

È la pratica di gestire le modifiche alle API nel tempo per garantire compatibilità e stabilità.

Vantaggi del versionamento semantico?

- Chiarezza delle modifiche - Compatibilità garantita - Facilità di integrazione

API v1.0 vs v2.0: differenze?

v1.0 può avere endpoint obsoleti, v2.0 introduce nuove funzionalità senza rompere la compatibilità.

Versionamento: URL o Header?

Utilizzare l'URL è più chiaro per l'utente, mentre l'Header mantiene l'endpoint più pulito.

Vero o falso: le API non devono mai cambiare?

Falso. Le API devono evolversi, ma con cautela per non rompere l'integrazione degli utenti.

Quando deprecate un'API?

Quando è sostituita da una nuova versione o non è più necessaria. Informare gli utenti è cruciale.

Esempio di versionamento in pratica?

Se un'API cambia il formato di risposta, è consigliabile creare un nuovo endpoint, come /api/v2/risorsa.

Qual è l'effetto del versionamento sulle API?

Permette di mantenere compatibilità mentre si introducono nuove funzionalità, evitando rotture per gli sviluppatori.

Pytania w tym zestawie(56)

1. Qual è il protocollo su cui si basa REST?

A.HTTP
B.FTP
C.SMTP
D.WebSocket

2. Cos'è il principale obiettivo del versionamento delle API?

A.Gestire le modifiche nel tempo
B.Aumentare il numero di endpoint
C.Ridurre la documentazione
D.Eliminare le versioni precedenti

3. Qual è il principio fondamentale del design delle API che incoraggia l'uso di nomi chiari e descrittivi?

A.Chiarezza
B.Complessità
C.Ambiguità
D.Opacità

4. Quale delle seguenti affermazioni descrive meglio il processo di autenticazione nelle API?

A.Verifica dell'identità di un utente o applicazione
B.Determinazione dei privilegi di accesso
C.Crittografia dei dati in transito
D.Registrazione delle attività dell'utente

5. Quale formato di dati è più comune nelle risposte delle API?

A.XML
B.JSON
C.HTML
D.CSV

6. Quale delle seguenti opzioni non è un vantaggio del versionamento semantico?

A.Chiarezza delle modifiche
B.Compatibilità garantita
C.Facilità di integrazione
D.Minore utilizzo della banda

7. Che tipo di stato devono mantenere le API secondo il principio REST?

A.Stateful
B.Stateless
C.Dinamico
D.Persistente

8. Qual è la principale differenza tra autenticazione e autorizzazione?

A.L'autenticazione verifica chi sei; l'autorizzazione verifica cosa puoi fare
B.L'autenticazione è sempre sicura; l'autorizzazione può essere vulnerabile
C.L'autenticazione è per utenti; l'autorizzazione è per applicazioni
D.L'autenticazione usa token; l'autorizzazione usa password

9. Quale metodo HTTP viene utilizzato per creare una nuova risorsa?

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

10. Quando è consigliato deprecare un'API?

A.Quando è sostituita da una nuova versione
B.Quando non ha utenti attivi
C.Quando si vogliono cambiare i nomi degli endpoint
D.Quando si vuole aumentare la sicurezza

11. Quali dei seguenti metodi HTTP è utilizzato per modificare una risorsa esistente?

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

12. Vero o falso: L'uso di HTTPS è fondamentale per la sicurezza delle API.

A.Vero
B.Falso
C.Solo per dati sensibili
D.Solo per autenticazione

13. Vero o falso: le API RESTful sono sempre state statiche.

A.Vero
B.Falso
C.Non definito
D.Dipende

14. Qual è una pratica comune per il versionamento delle API?

A.Modificare gli endpoint senza avviso
B.Creare un nuovo endpoint per ogni versione
C.Ignorare la compatibilità
D.Utilizzare solo versioni numeriche

15. È corretto affermare che le API dovrebbero essere sempre versionate?

A.Vero
B.Falso
C.Condizionato
D.Raramente

16. Quale di questi è un metodo comune di autenticazione?

A.OAuth
B.HTML
C.CSS
D.XML

17. Quale convenzione di denominazione è considerata migliore per le risorse?

A./user
B./users
C./user_list
D./u

18. Quale delle seguenti affermazioni è vera riguardo al versionamento tramite header?

A.Mantiene l'endpoint più pulito
B.È sempre più chiaro per l'utente
C.Richiede più documentazione
D.È meno flessibile rispetto all'URL

19. Cosa rappresenta un endpoint in un'API?

A.Un metodo HTTP
B.Un URL specifico
C.Una libreria di funzioni
D.Un formato di risposta

20. Compila il vuoto: Un attacco DDoS può causare ___ delle API.

A.Interruzione del servizio
B.Maggiore sicurezza
C.Accesso non autorizzato
D.Crittografia dei dati

21. Qual è la principale caratteristica di GraphQL?

A.Fornisce solo dati statici
B.Permette di richiedere dati specifici
C.Richiede più richieste
D.È un formato di dati

22. Quale delle seguenti situazioni rappresenta un effetto positivo del versionamento delle API?

A.Rottura dell'integrazione per gli sviluppatori
B.Introduzione di nuove funzionalità senza rompere
C.Diminuzione della documentazione necessaria
D.Aumento della confusione tra gli utenti

23. Come si deve rispondere a un errore 404 quando una risorsa non viene trovata?

A.Restituire un errore generico
B.Restituire un messaggio chiaro
C.Ignorare la richiesta
D.Reindirizzare a un'altra risorsa

24. Qual è l'importanza della validazione dell'input nelle API?

A.Previene attacchi come SQL Injection e XSS
B.Aumenta la velocità delle richieste
C.Riduce il numero di richieste
D.Facilita l’autenticazione

25. Quale tra i seguenti non è un metodo HTTP?

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

26. In quale scenario sarebbe più appropriato usare il versionamento tramite URL?

A.Quando la modifica è minima
B.Quando si desidera chiarezza per l'utente
C.Quando si vogliono mantenere gli stessi endpoint
D.Quando non si ha tempo per implementare gli header

27. Cosa significa che un'operazione API è 'idempotente'?

A.Puo essere eseguita una sola volta
B.Puo essere eseguita più volte con lo stesso risultato
C.Deve restituire sempre un errore
D.Non è consentita

28. Cosa rappresenta un token JWT?

A.Un metodo per autenticare e autorizzare richieste
B.Un tipo di database
C.Un linguaggio di programmazione
D.Un protocollo di rete

29. Cosa rappresenta un endpoint in un'API?

A.Un metodo HTTP
B.Un URL specifico
C.Un formato di dati
D.Una libreria

30. Qual è una conseguenza negativa di non gestire correttamente il versionamento delle API?

A.Miglioramento continuo delle API
B.Facile integrazione per gli sviluppatori
C.Possibili rotture nelle integrazioni esistenti
D.Maggiore soddisfazione degli utenti

31. Quali sono i formati di risposta più comuni utilizzati dalle API?

A.CSV e HTML
B.JSON e XML
C.TXT e PDF
D.YAML e BSON

32. Quale delle seguenti è una pratica di rate limiting?

A.Limitare le richieste a un certo numero per minuto
B.Autenticarsi con una password
C.Crittografare i dati in transito
D.Usare solo richieste GET

33. Qual è la funzione principale dei codici di stato HTTP?

A.Identificare il tipo di richiesta
B.Indicare il risultato della richiesta
C.Fornire dati aggiuntivi
D.Indicare il formato di dati

34. Cosa implica il principio DRY nel design delle API?

A.Duplicare il codice
B.Evitare la duplicazione del codice
C.Documentare ogni funzione
D.Scrivere codice lungo

35. Cosa può succedere se le chiavi API vengono esposte nel codice sorgente?

A.Accesso non autorizzato all'API
B.Miglioramento della sicurezza
C.Riduzione delle prestazioni
D.Autenticazione più veloce

36. Che cos'è un webhook?

A.Un tipo di API
B.Un metodo di autenticazione
C.Un meccanismo di callback
D.Un formato di dati

37. Qual è un elemento essenziale che deve contenere la documentazione di un'API?

A.Esempi di codice
B.Statistiche di utilizzo
C.Feedback degli utenti
D.Obiettivi di business

38. Che cosa fa una richiesta di autenticazione con API Key?

A.Includere una chiave nelle richieste
B.Richiedere una password per ogni richiesta
C.Crittografare le richieste
D.Verificare l'indirizzo IP del client

39. Vero o falso: JSON può contenere commenti.

A.Vero
B.Falso
C.Solo in alcune versioni
D.Non applicabile

40. Qual è l'effetto positivo di una buona gestione delle versioni delle API?

A.Maggior complessità
B.Interruzione per gli utenti esistenti
C.Aggiornamenti senza interruzione
D.Difficoltà di integrazione

41. Quale di queste affermazioni è falsa riguardo alla sicurezza delle API?

A.Le API non possono essere completamente sicure
B.HTTPS è sempre necessario
C.Le chiavi API devono essere visibili
D.La validazione dell'input è fondamentale

42. Quale opzione rappresenta un array in JSON?

A.{1, 2, 3}
B.[1, 2, 3]
C.1:2:3
D.(1, 2, 3)

43. Cosa deve includere una risposta API ben strutturata?

A.Solo il body
B.Status, headers e body
C.Solo headers
D.Solo il testo della risposta

44. Cosa provoca un attacco CSRF?

A.Operazioni non autorizzate sulla tua API
B.Sovraccarico del server
C.Accesso autorizzato ai dati
D.Crittografia fallita

45. Cosa significa HATEOAS?

A.Hypermedia As The Engine Of Application State
B.Hypertext As The Engine Of Application State
C.HTTP As The Engine Of API State
D.Hypermedia And Text Over API State

46. Un'API dovrebbe essere _____ per facilitare l'integrazione.

A.Difficile da usare
B.Facile da usare e navigare
C.Inutile
D.Complicata

47. Quale formato è comunemente usato per documentare le API?

A.OpenAPI
B.HTML
C.JSON
D.XML

48. Cosa si intende per 'scalabilità' nel design delle API?

A.Capacità di gestire un carico di lavoro crescente
B.Ridurre il numero di endpoint
C.Mantenere lo stato delle richieste
D.Impossibilità di modificare le risorse

49. Quale tra le seguenti affermazioni è vera riguardo al versionamento delle API?

A.Non è necessario
B.Rompe la compatibilità
C.Facilita la gestione delle modifiche
D.Rende le API più lente

50. Qual è la funzione principale delle intestazioni HTTP nelle comunicazioni API?

A.Fornire metadati sulla richiesta o risposta
B.Contenere dati di login
C.Memorizzare le sessioni utente
D.Aggiungere immagini alle risposte

51. Quale tipo di contenuto è frequentemente utilizzato per le API JSON?

A.text/plain
B.application/json
C.application/xml
D.image/jpeg

52. Qual è la principale differenza tra i metodi GET e POST?

A.GET recupera dati, POST li invia
B.GET invia dati, POST li recupera
C.GET e POST sono identici
D.Nessuna delle precedenti

53. Quale delle seguenti affermazioni è corretta riguardo alle API pubbliche e private?

A.Le API private sono per uso pubblico
B.Le API pubbliche sono per uso interno
C.Le API pubbliche sono accessibili da tutti
D.Le API private non esistono

54. Cosa rappresenta il termine 'payload' in un'API?

A.L'URL dell'API
B.Il formato di risposta
C.I dati trasmessi
D.Il tipo di richiesta

55. Quale tra le seguenti affermazioni descrive meglio le API stateless?

A.Non mantengono informazioni sullo stato tra le richieste.
B.Memorizzano lo stato dell'utente per migliorare le prestazioni.
C.Richiedono sempre autenticazione per ogni richiesta.
D.Utilizzano sessioni per gestire lo stato.

56. Quale dei seguenti rappresenta un esempio di codice di stato HTTP che indica un errore del client?

A.200 OK
B.404 Not Found
C.500 Internal Server Error
D.301 Moved Permanently

Powiązane zestawy

Stwórz własny zestaw

Wgraj PDF, wklej notatki lub opisz temat – AI wygeneruje fiszki, quizy i więcej w kilka sekund.