REST_ Representational State Transfer Flashcards

1
Q

Che cos’è il Web?

A

Una piattaforma per la condivisione di documenti distribuiti su diverse macchine e tra loro interconnesse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quali sono i tre concetti fondamentali che hanno portato alla creazione del Web?

A
  • URI
  • HTTP
  • HTML
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Cosa rappresenta il termine ‘Web Service’?

A

Un sistema software progettato per supportare un’interazione tra applicazioni utilizzando tecnologie e standard Web.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Qual è la differenza principale tra SOAP e REST?

A

SOAP è un protocollo standard per lo scambio di messaggi, mentre REST è uno stile architetturale che si concentra sulla descrizione e sul trasferimento delle risorse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Cosa non è REST?

A
  • Un protocollo
  • Una specifica
  • Necessariamente legato a HTTP
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Che cosa significa l’acronimo REST?

A

Representational State Transfer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Chi ha introdotto il concetto di REST?

A

Roy Fielding.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Qual è il principale vantaggio di un’architettura Client-Server in REST?

A

Permette l’evoluzione indipendente della logica lato client e della logica lato server.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Cosa significa ‘stateless’ in un’architettura REST?

A

Ogni richiesta da parte di un client deve contenere tutte le informazioni necessarie per essere compresa dal server.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Qual è il vantaggio di una comunicazione stateless?

A

Permette una scalabilità più semplice e elimina il problema della gestione delle sessioni utente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Che cos’è il vincolo ‘Cache’ in REST?

A

Richiede che le risposte siano etichettate come memorizzabili o non memorizzabili nella cache.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Cosa implica un sistema stratificato in REST?

A

Componenti intermedi possono essere collocati tra client e server, rendendo l’architettura modulare e flessibile.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Che cosa si intende per ‘interfaccia uniforme’ in REST?

A

I componenti devono comunicare tramite un’interfaccia standard per facilitare il caching.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Come vengono identificate le risorse in REST?

A

Utilizzando URI univoci.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Quali sono i metodi HTTP associati alle operazioni CRUD?

A
  • GET
  • POST
  • PUT
  • DELETE
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Cosa significa ‘RESTful’?

A

Riferimento a servizi Web che implementano l’architettura REST.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Qual è la mappatura tra le azioni CRUD e i metodi HTTP?

A

Ogni azione CRUD è associata a un metodo HTTP specifico.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Perché è importante evitare l’uso di verbi negli URI REST?

A

Perché un URI deve identificare una risorsa, non un’azione.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Cosa è un esempio di rappresentazione di una risorsa in JSON?

A

Un oggetto JSON che rappresenta un’entità come un libro o un ordine.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Qual è il principio di ‘manipolazione delle risorse attraverso rappresentazioni’ in REST?

A

I clienti interagiscono con le risorse tramite le loro rappresentazioni, come HTML, XML o JSON.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Cosa implica il vincolo ‘code on demand’ in REST?

A

Consente di aggiornare la logica all’interno dei client indipendentemente dalla logica lato server.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Qual è il principio fondamentale del metodo GET in un Web Service REST?

A

Il metodo GET serve per accedere alla rappresentazione di una risorsa e non per crearne una nuova.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Cosa è consigliato evitare nell’uso degli URI secondo i principi REST?

A

Evitare l’uso di verbi negli URI e limitarsi ad utilizzare nomi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Cosa deve contenere il corpo di una richiesta HTTP con metodi PUT e POST?

A

Il corpo deve essere pensato per il trasferimento della rappresentazione di una risorsa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
In che modo un Web Service invia informazioni al client?
Un Web Service invia una rappresentazione di una risorsa in una codifica dipendente dalla richiesta del client.
26
Qual è un vantaggio di avere rappresentazioni multiple di una risorsa?
Permette di soddisfare client di tipo diverso, ad esempio sia con un’applicazione sia con un comune browser.
27
Cosa implica la comunicazione stateless in un Web Service RESTful?
Ogni richiesta non ha alcuna relazione con richieste precedenti o successive.
28
Chi è responsabile della gestione dello stato dell'applicazione in un client RESTful?
La responsabilità della gestione dello stato dell'applicazione è del client.
29
Cosa rappresenta JSON?
JavaScript Object Notation, una rappresentazione testuale e priva di schemi di dati strutturati.
30
Quali sono i sei tipi di dati semplici supportati da JSON?
* stringhe * numeri * oggetti * array * Booleani (vero o falso) * nullo
31
Come è strutturato un oggetto JSON?
Un oggetto JSON è un formato di dati chiave-valore racchiuso in parentesi graffe.
32
Quali sono i principali limiti di JSON?
* Nessuno schema * Solo un tipo di numero * Nessun tipo di data * Nessun commento * Verbosità
33
Cosa significa serializzazione in informatica?
La trasformazione di un oggetto software in uno stream di byte.
34
Cosa è la deserializzazione?
La trasformazione di uno stream di byte in oggetti.
35
Qual è un esempio di utilizzo di JSON in PHP?
Utilizzo della funzione json_encode per creare un JSON a partire da un oggetto.
36
Cosa si può fare con cURL in PHP?
Effettuare operazioni su server remoti come recuperare contenuto, autenticazione e connessione a web service.
37
Qual è la sintassi per ottenere una risorsa con cURL in PHP?
Utilizzare curl_setopt per impostare l'URL, il tipo di chiamata e gli header HTTP.
38
Cosa rappresenta la chiave 'Content-type' nell'header HTTP?
Indica il tipo di contenuto della richiesta, ad esempio 'application/xml'.
39
Cosa restituisce la funzione json_decode in PHP?
Decodifica una stringa JSON in un array associativo o oggetto.
40
Cosa è un client RESTful?
Un client in grado di interagire con un Web Service di tipo REST.
41
Qual è l'obiettivo principale della classe HttpWebRequest in C#?
Gestire le richieste HTTP.
42
Qual è il metodo HTTP utilizzato per creare una nuova risorsa?
POST
43
Quale metodo HTTP è utilizzato per modificare una risorsa?
PUT
44
Quale metodo HTTP è utilizzato per eliminare una risorsa?
DELETE
45
Cosa deve essere impostato per inviare dati in formato JSON?
Content-Type: application/json
46
Cosa rappresenta l'ID in un array associativo?
Un identificatore unico per la risorsa.
47
Qual è la funzione di curl_setopt in PHP?
Impostare le opzioni per una sessione cURL.
48
Quale funzione viene utilizzata per convertire un array PHP in JSON?
json_encode
49
Qual è la risposta HTTP che indica che una risorsa è stata creata con successo?
201 Created
50
Qual è la risposta HTTP che indica che una richiesta è andata a buon fine?
200 OK
51
Quale classe viene utilizzata per deserializzare una risposta JSON in C#?
JsonConvert
52
Fill in the blank: Il primo passo nella progettazione di un Web Service RESTful consiste nell'individuare le _______.
risorse
53
Qual è la raccomandazione per la creazione di URI in un Web Service RESTful?
Preferire l'utilizzo di nomi a quello di verbi.
54
Quale struttura è preferibile per la definizione degli URI?
Schema posizionale
55
True or False: Un URI deve essere lungo e complesso per identificare una risorsa.
False
56
Cosa deve essere fatto per gestire eventuali errori durante l'esecuzione di una richiesta cURL?
Controllare il valore di ritorno di curl_exec.
57
Quale metodo viene utilizzato per ottenere il flusso di risposta in una richiesta HTTP in C#?
GetResponseStream
58
Qual è la funzione di curl_close in PHP?
Chiudere una sessione cURL.
59
Qual è il formato del dato che deve essere inviato in una richiesta POST?
JSON
60
Quale metodo è utilizzato per inviare dati al server in una richiesta PUT?
curl_setopt con CURLOPT_POSTFIELDS
61
Qual è l'importanza di definire le relazioni tra le risorse in un Web Service RESTful?
Permette di gestire lo stato dell'applicazione.
62
Qual è il tipo di richiesta HTTP utilizzato per ottenere risorse?
GET
63
Qual è la preferenza per l'URI quando si individuano ordini in base alla data?
http://www.mionegozio.com/ordini/2011/07/01 ## Footnote Questo è preferibile rispetto a http://www.mionegozio.com/ordini/?anno=2001&mese=07&giorno=01.
64
Qual è il vincolo associato agli URI nei Web Service?
Introducono un vincolo di accoppiamento con il client e devono essere definiti con attenzione.
65
Qual è un esempio di URI preferito da utilizzare?
http://www.mionegozio.com/ordini/?id=123 ## Footnote È preferito rispetto a http://www.mionegozio.com/ordini/ordine.php?id=123.
66
Quali metodi HTTP possono essere eseguiti sulle risorse?
GET, PUT, POST, DELETE.
67
Cosa significa comunicazione stateless in un'architettura RESTful?
Ogni richiesta è indipendente dalle altre e non richiede il recupero di uno stato dal server.
68
Quali sono i problemi causati dall'uso di chiavi di sessione nei Web Service?
Introducono uno stato di comunicazione al di sopra del protocollo HTTP.
69
Cosa indica il principio HATEOAS?
Hypermedia As The Engine Of Application State, che suggerisce l'uso di collegamenti tra risorse per transizioni di stato.
70
Qual è la struttura di un esempio di rappresentazione JSON di un ordine?
{ "ordine": { "id": "123", "data": "01/07/2011", "cliente": "Mario Rossi", "stato": "EVASO" } }.
71
Quali sono i metodi HTTP riconosciuti per l'implementazione di un web service in C#?
GET, DELETE, POST, PUT.
72
Qual è l'importanza della documentazione delle API?
Deve fornire descrizioni chiare, URL delle risorse, parametri accettati e struttura delle risposte.
73
Quali sono alcuni strumenti per la creazione di documentazione API?
* WCF Web HTTP Service Help Page * Swagger * Github Wikis * Slate.
74
Quali sono le best practices per la denominazione delle risorse?
Usare nomi al plurale e non mixare singolare e plurale.
75
Cosa deve essere specificato negli header HTTP per la comunicazione?
* Content-Type: definisce il formato della request * Accept: definisce i formati di risposta accettabili.
76
Qual è un principio da seguire per la paginazione dei dati?
Utilizzare i parametri limit e offset.
77
Quali codici di stato HTTP sono utili per gestire gli errori?
* 200 - OK * 201 - Risorsa creata correttamente * 204 - Cancellazione avvenuta con successo * 400 - Operazione non eseguita * 404 - Risorsa non esistente.
78
Qual è una buona pratica per la versione delle API?
Rendere la versione dell'API obbligatoria e utilizzare numeri ordinali.
79
Qual è il codice HTTP 200?
OK – Tutto bene
80
Qual è il codice HTTP 201?
OK – È stata creata una nuova risorsa
81
Qual è il codice HTTP 204?
OK – La risorsa è stata cancellata con successo
82
Qual è il codice HTTP 304?
Not modified – I dati non sono cambiati
83
Qual è il codice HTTP 400?
Bad Request – Richiesta non valida
84
Qual è il codice HTTP 401?
Unauthorized – La richiesta richiede autenticazione dell’utente
85
Qual è il codice HTTP 403?
Forbidden – Accesso non consentito
86
Qual è il codice HTTP 404?
Not Found – Risorsa non trovata
87
Qual è il codice HTTP 410?
Gone – Risorsa non disponibile e intenzionalmente spostata
88
Qual è il codice HTTP 422?
Unprocessable Entity – Non può essere elaborata l’entità
89
Qual è il codice HTTP 500?
Internal Server Error – Errore globale dell’applicazione
90
Qual è il codice HTTP 503?
Service Unavailable – Server offline
91
Che cosa deve contenere un payload dell’errore?
Mappatura di tutte le eccezioni
92
Qual è l'header HTTP non standard per fare l'override dei metodi?
X-HTTP-Method-override
93
Qual è una buona pratica per la gestione degli errori con l'API REST?
Utilizzare codici di stato HTTP
94
Quali categorie di codici di stato HTTP sono presenti?
* 2XX (Successo) * 3XX (Redirection) * 4XX (Errore Client) * 5XX (Errore Server)
95
True o False: Il codice 204 indica che una risorsa è stata creata.
False
96
Fill in the blank: Il codice HTTP 403 indica __________.
Forbidden – Accesso non consentito
97
Qual è l'importanza di evitare il codice di errore 500?
Evitare di inviare lo stacktrace all’utente