Come creare unAPI RESTful Node.js utilizzando Express.js su Ubuntu 16.04 LTS

In questo tutorial, imparerai come impostare un'API RESTful completa, che servirà le richieste HTTP utilizzando Node.js ed Express mentre inoltra il proxy con NGINX, su Ubuntu 16.04 LTS. Utilizzeremo un'applicazione chiamata Postman, uno strumento di sviluppo API molto noto, per testare la nostra API e assicurarsi che sia perfettamente funzionante e funzioni correttamente. Node.js è un framework JavaScript multipiattaforma veloce basato sul motore V8 di Chrome. È utilizzato in entrambe le applicazioni desktop e server ed è famoso per la gestione di loop di eventi a thread singolo. Useremo Node.js come backend per la nostra API RESTful, in bundle con Express.js, il nostro framework di applicazioni web creato per Node.js. Express.js è rilasciato come software gratuito e aperto. Express è lato server, scritto in JavaScript ed è progettato per la creazione di API, il che lo rende perfetto per il nostro progetto. D'altra parte, Postman è un client HTTP molto potente, con in mente lo sviluppo delle API. Presenta tutti gli strumenti che potresti desiderare per lo sviluppo delle API.

Installazione di Postman

Innanzitutto, vai sul sito Web di Postman e scarica e installa Postman per il tuo PC principale (non per il tuo server). Tutte le istruzioni di installazione saranno sul loro sito Web.

Installazione di Node.js

Per iniziare, dovremo prima installare Node.js in modo da poter iniziare a sviluppare la nostra API. Scaricheremo e installeremo Node.js dal sito ufficiale.

 curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
 sudo apt-get install -y nodejs

Inoltre, vorrai anche prendere gli strumenti di costruzione necessari, che saranno utili nella compilazione di moduli.

sudo apt-get install build-essential

Per questo tutorial, utilizzeremo la versione LTS di Node.js, che è la versione 8.9.3.

Inizializzazione del nostro progetto Node.js

Dovremo inizializzare un nuovo progetto Node.js, che conterrà un'applicazione. Per fare ciò, crea una nuova directory.

 mkdir expressapi 

Passa alla nuova directory. Una volta dentro, esegui npm inite completa tutte le istruzioni richieste. Prendi nota del "punto di ingresso" dell'applicazione: creerai questo file in seguito. Al termine, vedrai un package.jsonfile nella tua directory corrente. Funziona come una descrizione del nostro progetto ed elenca tutte le dipendenze necessarie per funzionare.

Impostazione di Express.js

Ora configureremo Express.js e le sue dipendenze.

npm install express

Inizierà il processo di installazione. Ci vorranno alcuni minuti per completare il download di tutto.

Avvio del nostro file principale

Successivamente, creeremo il nostro file di partenza principale per la nostra API. Qui è dove utilizzerai il "punto di ingresso" che hai visto nel package.jsonfile. Per il bene di questo tutorial, userò il default schema di denominazione, index.js.

touch index.js

Quindi, aprilo nell'editor di testo nano.

nano index.js

Nel nostro file principale, vogliamo prima chiamare tutti i nostri pacchetti principali e registrare i nostri percorsi.

var express = require('express');        
var app = express();                 
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080;  
const router = express.Router();
router.get('/', function(req, res) {
    res.json({ message: 'API is Online!' });   
});

app.use('/api', router);
app.listen(port);
console.log('Listening on port ' + port);

Fondamentalmente quello che stiamo facendo qui è inizializzare la nostra app e configurare un router di base per la nostra API. Nota che impostiamo la porta della nostra applicazione su 8080. Avremo bisogno di questo numero per quando configureremo la nostra API RESTful. Ora siamo pronti per andare avanti e testare la nostra API.

Testare la nostra API con Postman

Nella directory del progetto, eseguire quanto segue.

node <filename>.js

Ciò avvierà l'API, dove si <filename>trova il file di avvio specificato nel package.jsonfile. Quindi, apri Postman sul tuo PC / Mac e fai clic sul pulsante " New" nell'angolo in alto a destra, quindi fai clic su " Request". Quando sei lì, dovresti vedere una barra che dice " GET" accanto. Qui inseriremo il nostro URL di richiesta. Basta inserire quanto segue nella sezione URL richiesta e fare clic su " Send".

`http://your-server-ip:3000/api` 

Vedrai " 'API is online'".

Percorsi API

Per gestire i percorsi, utilizzeremo il router Express. Se non sai cos'è un router, è essenzialmente come gli endpoint dell'applicazione rispondono alle richieste del client. Ecco i percorsi che configureremo come esempio:

  • /api/numbers - Mostra tutti i numeri da 1 a 10.

  • /api/letters - Mostra tutte le lettere dalla A alla Z.

Ora imposteremo la nostra struttura middleware per la prima route, in questo modo.

router.use(function(req, res, next) {
   console.log('We've got something.');
   next() //calls next middleware in the application.
});

router.route('/numbers/:number').get((req, res) => {
     res.json({result: req.params.number + 1})
});

In questo esempio, creiamo una situazione in cui un utente può richiedere la somma di un numero + 1 fornendo la forma della parola di esso, usando il metodo GET. Usiamo la router.route()funzione per indicare quale numero vogliamo restituire come risultato. I parametri sono chiamati con un " :" davanti a loro. Accediamo a questi parametri tramite req.params.

Ecco un esempio con le lettere.

   router.route('/letters/:letter').get((req, res) => {
     res.json({result: req.params.letter.toUpperCase()})
});

Usiamo lo stesso metodo di cui sopra, ma restituiamo la lettera in maiuscolo.

Introduzione a NGINX

NGINX è un noto software open source utilizzato per servizi Web, proxy inversi, streaming e altro. Utilizzeremo NGINX per invertire il proxy della nostra API, per consentirci di eseguirlo sulla porta 80, perché Node.js non consente connessioni su porte inferiori a 1024 senza accesso root. Questo può tornare utile quando colleghi il tuo dominio al tuo server.

Configurazione di NGINX

Per iniziare l'installazione di NGINX è necessario eseguire quanto segue nel terminale e attendere il completamento dell'installazione.

sudo apt-get install nginx

Successivamente, vorremmo creare il nostro file del sito che NGINX utilizzerà per invertire la nostra app.

sudo nano /etc/nginx/sites-available-api.js

Popolare il file con il seguente, quindi CTRL+ Oper salvarlo.

server {
          listen 80;
          location / {
                proxy_set_header X-Real-IP 
                $remote_addr;
                proxy_set_header 
                X-Forwarded-For 
                $proxy_add_x_forwarded_for;
                proxy_set_header Host 
                $http_host;
                proxy_set_header 
                X-NginX-Proxy true; proxy_pass 
                http://127.0.0.1:8080/;
                proxy_redirect off;
                proxy_http_version 1.1;
                proxy_set_header Upgrade 
                $http_upgrade;
                proxy_set_header Connection 
                "upgrade";
                proxy_redirect off;
                proxy_set_header 
               X-Forwarded-Proto $scheme;
       }
}

Utilizzando la stessa porta su cui abbiamo eseguito la nostra applicazione in precedenza, stiamo dicendo a Nginx di reindirizzare tutte le richieste dal nostro indirizzo IP sulla porta 80alla nostra API in esecuzione sulla porta 8080.

Quindi, abilitare il proxy inverso collegando in modo simbolico il nostro file appena creato alla sites-availablecartella:

sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-available

Ciò garantirà che NGINX annullerà il proxy della nostra API.

Prima esecuzione con NGINX

Una volta terminata la nostra configurazione NGINX, avvieremo NGINX, quindi avvieremo la nostra API. Innanzitutto, riavvia NGINX.

sudo systemctl restart nginx

Quindi, tornare alla directory API e avviarlo.

node <filename>.js

L'applicazione verrà eseguita sulla porta 80. Esegui semplicemente il test dall'alto con Postman, per assicurarti che tutto funzioni correttamente.

Mantenere attiva la nostra API

In un ambiente di produzione, si desidera assicurarsi di disporre di un gestore processi per le applicazioni Node, per garantire che rimangano in esecuzione per sempre in background. In questo tutorial, utilizzeremo un gestore di processo chiamato PM2 (Process Manager 2), che è un gestore di processo per le applicazioni Node.js che li manterrà in vita per sempre con tempi di inattività minimi. PM2 viene fornito con molti utili strumenti di gestione, come l'arresto, il ricaricamento, la pausa e altro ancora. Per installare PM2, digitare quanto segue e attendere l'installazione.

sudo npm install pm2 -g

Una volta installato, tutto ciò che devi fare è assicurarti di essere nella directory del progetto, digitare quanto segue e l'applicazione verrà avviata.

pm2 start <filename>.js

Gestire la nostra applicazione con PM2

Come accennato in precedenza, PM2 ha alcuni strumenti utili che è possibile utilizzare per gestire meglio l'applicazione.

  • pm2 stop- Come suggerisce il nome, ciò consente di interrompere l'applicazione attualmente in esecuzione e di terminarne il processo. Se l'applicazione sta producendo un risultato imprevisto, la sua interruzione tornerà utile.

  • pm2 list- La funzione elenco consente di visualizzare tutte le applicazioni attualmente in esecuzione tramite PM2, mappate dai loro nomi. Se è necessario controllare rapidamente i tempi di attività dell'applicazione, è necessario utilizzare questo strumento.

  • pm2 restart- Se la tua applicazione si blocca per qualche motivo e desideri ricaricarla, il riavvio di pm2 fa proprio questo. Ucciderà il processo di applicazione e lo riavvierà, con un processo diverso.

  • pm2 monit- Lo strumento di monitoraggio integrato di PM2 consente di visualizzare un grafico dei dettagli specifici dell'applicazione, come l'utilizzo della CPU / RAM, in un grafico intuitivo in stile ncurses. Questo è utile se desideri un'immagine visiva del carico della tua applicazione.

Osservazioni finali

Ora abbiamo completato il nostro compito di creare un'API RESTful, utilizzando Node.js, Express e invertire il proxy con NGINX. Sentiti libero di espandere questo tutorial. Puoi fare molte cose fantastiche con la tua nuova API, come aggiungere metodi di autenticazione, un database, una migliore gestione del percorso e degli errori e molto altro ancora. Se hai un dominio, con un record "A" già impostato sul tuo indirizzo IP, sarai in grado di accedere alla tua API dal tuo dominio. Per ulteriori informazioni su Express.js, visitare il sito Web http://expressjs.com . Per ulteriori informazioni su NGINX e il proxy inverso, visitare http://nginx.com . Per ulteriori informazioni su PM2, visitare la loro pagina http://pm2.keymetrics.io .



Leave a Comment

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.