REST - Servizi Web
Introduzione
Le richieste REST sono indirizzi online che restituiscono informazioni su dati elaborati nel server, che contiene la logica di business dei dati che richiedono sicurezza e affidabilità, con l'integrazione del database.
Maggiori informazioni su REST
La costruzione dell'API REST avviene sulla base dei Servizi di Netuno.
ALL
Per creare un servizio in Netuno che risponda a qualsiasi tipo di metodo HTTP:
📂 server/services/mio-servizio.js
Nel browser, questo servizio verrà eseguito per tutti i tipi di richieste all'indirizzo:
GET
Gli indirizzi di tipo GET sono normalmente utilizzati per operazioni di elenco o di ottenimento di dati.
Per creare un servizio in Netuno che risponda solo al tipo di metodo GET, utilizza una di queste forme:
📂 server/services/elenco/get.js📂 server/services/elenco.get.js
Nel browser, questo servizio verrà eseguito solo per il tipo di richiesta GET all'indirizzo:
POST
Gli indirizzi di tipo POST sono normalmente utilizzati per operazioni che creano o generano nuovi dati.
Per creare un servizio in Netuno che risponda solo al tipo di metodo POST, crea il file di codice utilizzando una di queste forme:
📂 server/services/creare/post.js📂 server/services/creare.post.js
Questo servizio verrà eseguito solo per il tipo di richiesta POST all'indirizzo:
PUT
Gli indirizzi di tipo PUT sono normalmente utilizzati per operazioni che modificano record di dati.
Per creare un servizio in Netuno che risponda solo al tipo di metodo PUT, crea il file di codice utilizzando una di queste forme:
📂 server/services/salvare/put.js📂 server/services/salvare.put.js
Questo servizio verrà eseguito solo per il tipo di richiesta PUT all'indirizzo:
DELETE
Gli indirizzi di tipo DELETE sono normalmente utilizzati per operazioni che eliminano nuovi record di dati.
Per creare un servizio in Netuno che risponda solo al tipo di metodo DELETE, crea il file di codice utilizzando una di queste forme:
📂 server/services/eliminare/delete.js📂 server/services/eliminare.delete.js
Questo servizio verrà eseguito solo per il tipo di richiesta DELETE all'indirizzo:
OPTIONS
Nell'integrazione con il frontend, durante il processo di validazione del CORS, il browser effettua la chiamata di tipo OPTIONS.
Maggiori informazioni su CORS.
Per creare un servizio in Netuno che risponda solo al tipo di metodo OPTIONS, crea il file di codice utilizzando una di queste forme:
📂 server/services/elencare/options.js📂 server/services/elencare.options.js
Deve essere implementato per tutti i servizi che sono integrati in un frontend esterno, come un sito web.
Codice normalmente utilizzato:
_out.json(_val.map().set("result", true))
Questo servizio verrà eseguito per il tipo di richiesta OPTIONS all'indirizzo:
Client e Esecuzione di Test
Per eseguire test sui servizi con un tipo di metodo specifico, puoi utilizzare programmi dedicati che eseguono test su API REST, come:
CURL
Con il comando curl nel terminale puoi eseguire qualsiasi tipo di test.
Dalla console/riga di comando invia un GET:
curl http://localhost:9000/services/registrare
Con -X puoi specificare il tipo di metodo:
curl -X POST -F 'nome=Test' -F 'email=email@esempio.com' http://localhost:9000/services/registrare
Il parametro
-Finvia con Content-Type:multipart/form-data
Un altro modo per inviare parametri:
curl -X POST -d 'nome=Test' -d 'email=email@esempio.com' http://localhost:9000/services/registrare
Può essere concatenato nel modo seguente:
curl -X POST -d 'nome=Test&email=email@esempio.com' http://localhost:9000/services/registrare
Il parametro
-dinvia con Content-Type:application/x-www-form-urlencoded
JSON
Per inviare in formato JSON è necessario specificare il tipo di contenuto:
curl -X POST -H "Content-Type: application/json" \
-d '{"nome": "Test", "email": "email@esempio.com"}' \
http://localhost:9000/services/registrare
Il
-Hdefinisce la parametrizzazione dell'intestazione (HEADER)
Upload
Per eseguire l'upload di file:
curl -X POST -F 'image=@/home/utente/file.jpg' http://localhost:9000/services/registrare
Service Client - NPM
Per realizzare facilmente l'integrazione con il frontend, è disponibile il modulo NPM:
Comando di installazione: npm i -S @netuno/service-client
Nel definire l'indirizzo dei servizi, come:
_service.config({
prefix: 'http://localhost:9000/services/'
});
Potrai eseguire servizi integrati con il frontend, come ad esempio:
_service({
url: "/services/mio-servizio",
method: 'POST',
data: { param1: "1", param2: "2" },
success: (response) => {
if (response.json) {
console.log("Service Response", response.json);
}
},
fail: (e) => {
console.log("Service Error", e);
}
});
Conclusione
È supportato limitare i servizi solo al tipo di metodo HTTP desiderato.
Per integrare con il frontend si può fare al livello più basso utilizzando fetch.
Per velocizzare e standardizzare l'implementazione è disponibile il modulo NPM @netuno/service-client.