Si të krijoni një API RESTful Node.js duke përdorur Express.js në Ubuntu 16.04 LTS

Në këtë tutorial, do të mësoni se si të konfiguroni një API të plotë RESTful, i cili do t'i shërbejë kërkesave HTTP duke përdorur Node.js dhe Express duke e bërë proksimin e kundërt me NGINX, në Ubuntu 16.04 LTS. Ne do të përdorim një aplikacion të quajtur Postman, një mjet shumë i njohur i zhvillimit të API, për të testuar API-në tonë dhe për t'u siguruar që është plotësisht funksionale dhe funksionon siç duhet. Node.js është një kornizë e shpejtë JavaScript ndër-platformë e bazuar në motorin V8 të Chrome. Përdoret si në aplikacionet e desktopit ashtu edhe në serverët dhe është i famshëm për trajtimin e ciklit të ngjarjeve me një fije të vetme. Ne do të përdorim Node.js si bazë për API-në tonë RESTful, të bashkuar me Express.js, kornizën tonë të aplikacionit në ueb të krijuar për Node.js. Express.js lëshohet si softuer i lirë dhe i hapur. Express është nga ana e serverit, i shkruar në JavaScript dhe është krijuar për ndërtimin e API-ve, gjë që e bën atë të përsosur për projektin tonë. Nga ana tjetër, Postman është një klient shumë i fuqishëm HTTP, me zhvillimin e API-së në mendje. Ai përmban të gjitha mjetet që mund të dëshironi për zhvillimin e API.

Instalimi i Postman

Së pari, ju dëshironi të shkoni te faqja e internetit e Postman dhe të shkarkoni dhe instaloni Postman për kompjuterin tuaj kryesor (jo serverin tuaj). Të gjitha udhëzimet e instalimit do të jenë në faqen e tyre të internetit.

Instalimi i Node.js

Për të filluar, fillimisht do të na duhet të instalojmë Node.js që të mund të fillojmë të zhvillojmë API-në tonë. Ne do të shkarkojmë dhe instalojmë Node.js nga faqja zyrtare e internetit.

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

Përveç kësaj, ju gjithashtu do të dëshironi të kapni mjetet e nevojshme të ndërtimit, të cilat do të jenë të dobishme në përpilimin e moduleve.

sudo apt-get install build-essential

Për këtë tutorial, ne do të përdorim versionin LTS të Node.js, i cili është versioni 8.9.3.

Duke inicializuar projektin tonë Node.js

Do të na duhet të inicializojmë një projekt të ri Node.js, i cili do të përmbajë një aplikacion. Për ta bërë këtë, krijoni një drejtori të re.

 mkdir expressapi 

Ndrysho në drejtorinë e re. Pasi të jeni brenda, ekzekutoni npm initdhe plotësoni të gjitha kërkesat e kërkuara. Mbani shënim "pikën hyrëse" të aplikacionit tuaj: ju do ta krijoni këtë skedar më vonë. Pasi të keni mbaruar, do të shihni një package.jsonskedar në drejtorinë tuaj aktuale. Ai vepron si një përshkrim i projektit tonë dhe rendit të gjitha varësitë e nevojshme për të funksionuar.

Konfigurimi i Express.js

Tani do të konfigurojmë Express.js dhe varësitë e tij.

npm install express

Procesi i instalimit do të fillojë. Do të duhen disa minuta që gjithçka të përfundojë shkarkimin.

Fillimi i skedarit tonë kryesor

Më pas, ne do të krijojmë skedarin tonë kryesor fillestar për API-në tonë. Këtu do të përdorni "pikën hyrëse" që keni parë në package.jsonskedar. Për hir të këtij tutoriali, unë do të përdor skemën e paracaktuar të emërtimit, index.js.

touch index.js

Pastaj, hapeni në redaktuesin e tekstit nano.

nano index.js

Në skedarin tonë kryesor, ne duam së pari të telefonojmë të gjitha paketat tona kryesore dhe të regjistrojmë rrugët tona.

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);

Në thelb ajo që ne po bëjmë këtu është inicializimi i aplikacionit tonë dhe vendosja e një ruteri bazë për API-në tonë. Vini re se ne kemi vendosur portin e aplikacionit tonë në 8080. Do të na duhet ky numër kur të konfigurojmë API-në tonë RESTful. Tani jemi gati të vazhdojmë dhe të testojmë API-në tonë.

Testimi i API-së tonë me Postman

Në drejtorinë e projektit, ekzekutoni sa më poshtë.

node <filename>.js

Kjo do të nisë API-në, ku <filename>është skedari fillestar që keni specifikuar në package.jsonskedar. Pastaj, hapni Postman në PC/Mac tuaj dhe klikoni Newbutonin " " në këndin e sipërm djathtas, më pas kliko " Request". Kur atje, ju duhet të shihni një shirit që thotë " GET" pranë tij. Këtu do të futim URL-në e kërkesës sonë. Thjesht futni sa vijon në seksionin e URL-së së kërkesës dhe klikoni " Send".

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

Do të shihni " 'API is online'".

Rrugët API

Për të trajtuar rrugët, ne do të përdorim ruterin Express. Nëse nuk e dini se çfarë është një ruter, në thelb është mënyra se si pikat fundore të aplikacionit u përgjigjen kërkesave të klientit. Këtu janë rrugët që do të vendosim si shembull:

  • /api/numbers - Tregon të gjithë numrat nga 1-10.

  • /api/letters - Tregon të gjitha shkronjat nga AZ.

Tani ne do të krijojmë strukturën tonë të parë të ndërmjetësimit të rrugës, si kjo.

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})
});

Në këtë shembull, ne vendosëm një situatë ku një përdorues mund të kërkojë shumën e një numri + 1 duke dhënë formën e fjalës së tij, duke përdorur metodën GET. Ne përdorim router.route()funksionin për të treguar se cilin numër duam të kthejmë si rezultat. Parametrat emërtohen me një " :" përpara tyre. Ne i aksesojmë këto parametra nëpërmjet req.params.

Ja një shembull me shkronja.

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

Ne përdorim të njëjtën metodë si më sipër, por e kthejmë letrën si të kapitalizuar.

Hyrje në NGINX

NGINX është një softuer i njohur me burim të hapur që përdoret për shërbime në ueb, proxies të kundërt, transmetim dhe më shumë. Ne do të përdorim NGINX për të kthyer proxy API-në tonë, për të na lejuar ta ekzekutojmë atë në port 80, sepse Node.js nuk lejon lidhje në porte më të vogla se 1024 pa qasje rrënjësore. Kjo mund të jetë e dobishme kur lidhni domenin tuaj me serverin tuaj.

Konfigurimi i NGINX

Për të filluar instalimin e NGINX, do t'ju duhet të ekzekutoni sa më poshtë në terminalin tuaj dhe të prisni që instalimi të përfundojë.

sudo apt-get install nginx

Më pas, ne do të dëshirojmë të krijojmë skedarin tonë të faqes që NGINX do ta përdorë për të kthyer proxy të aplikacionit tonë.

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

Plotësoni skedarin me sa vijon, më pas CTRL+ Opër ta ruajtur.

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;
       }
}

Duke përdorur të njëjtin port në të cilin kemi ekzekutuar aplikacionin tonë më herët, ne po i themi Nginx që të ridrejtojë të gjitha kërkesat nga adresa jonë IP në port 80në API-në tonë që funksionon në port 8080.

Më pas, aktivizoni përfaqësuesin e kundërt duke sinkronizuar skedarin tonë të krijuar rishtazi me sites-availabledosjen:

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

Kjo do të sigurojë që NGINX do të ndryshojë API-në tonë të përfaqësuesit.

Ekzekutimi i parë me NGINX

Pasi të kemi përfunduar konfigurimin tonë NGINX, ne do të fillojmë NGINX, më pas do të fillojmë API-në tonë. Së pari, rinisni NGINX.

sudo systemctl restart nginx

Më pas, kthehuni në drejtorinë tuaj API dhe filloni atë.

node <filename>.js

Aplikacioni do të ekzekutohet në port 80. Thjesht kryeni testin nga lart me Postman, për t'u siguruar që gjithçka po funksionon siç duhet.

Mbajtja e API-së tonë në funksion

Në një mjedis prodhimi, ju dëshironi të siguroheni që të keni një menaxher procesi për aplikacionet tuaja Node, për t'u siguruar që ato të qëndrojnë të funksionojnë përgjithmonë në sfond. Në këtë tutorial, ne do të përdorim një menaxher procesi të quajtur PM2 (Process Manager 2), i cili është një menaxher procesi për aplikacionet Node.js që do t'i mbajë ato të gjalla përgjithmonë me kohë minimale joproduktive. PM2 vjen me shumë mjete të dobishme të menaxhimit, të tilla si ndalimi, ringarkimi, ndalimi dhe më shumë. Për të instaluar PM2, shkruani sa vijon dhe prisni që të instalohet.

sudo npm install pm2 -g

Pasi të jetë instaluar, gjithçka që duhet të bëni është të siguroheni që jeni në drejtorinë e projektit, shkruani sa vijon dhe aplikacioni do të fillojë.

pm2 start <filename>.js

Menaxhimi i aplikacionit tonë me PM2

Siç u përmend më herët, PM2 ka disa mjete të dobishme që mund t'i përdorni për të menaxhuar më mirë aplikacionin tuaj.

  • pm2 stop- Siç sugjeron emri, kjo ju lejon të ndaloni aplikacionin aktualisht në punë dhe të mbyllni procesin e tij. Nëse aplikacioni juaj po prodhon një rezultat të papritur, atëherë ndalimi i tij do të jetë i dobishëm.

  • pm2 list- Funksioni i listës ju lejon të shihni të gjitha aplikacionet aktualisht të ekzekutuara nëpërmjet PM2, të përcaktuara sipas emrave të tyre. Nëse keni nevojë të kontrolloni shpejt kohën e përdorimit të aplikacionit tuaj, duhet të përdorni këtë mjet.

  • pm2 restart- Nëse aplikacioni juaj ngrin për ndonjë arsye dhe dëshironi ta rifreskoni, rinisja e pm2 bën pikërisht këtë. Do të vrasë procesin e aplikimit dhe do ta fillojë përsëri, nën një proces tjetër.

  • pm2 monit- Mjeti i integruar i monitorit i PM2 ju lejon të shikoni një grafik të detajeve specifike të aplikacionit tuaj, si p.sh. përdorimi i CPU/RAM, në një grafik të stilit ncurses miqësor për përdoruesit. Kjo është e dobishme nëse dëshironi një pamje vizuale të ngarkesës së aplikacionit tuaj.

Vërejtje përfundimtare

Tani kemi përfunduar detyrën tonë për të krijuar një API RESTful, duke përdorur Node.js, Express dhe duke e kthyer atë në anën e kundërt me NGINX. Mos ngurroni të zgjeroni këtë tutorial. Ju mund të bëni shumë gjëra të shkëlqyera me API-në tuaj të re, të tilla si shtimi i metodave të vërtetimit, një bazë të dhënash, trajtimi më i mirë i rrugës dhe gabimeve, dhe shumë e shumë më tepër. Nëse keni një domen, me një rekord "A" tashmë të vendosur në adresën tuaj IP, atëherë do të jeni në gjendje të përdorni API-në tuaj nga domeni juaj. Nëse dëshironi të mësoni më shumë rreth Express.js, vizitoni uebsajtin e tyre në http://expressjs.com . Për të mësuar më shumë rreth NGINX dhe proksimit të kundërt, vizitoni http://nginx.com . Për të lexuar më shumë rreth PM2, vizitoni faqen e tyre në http://pm2.keymetrics.io .

Lëreni një koment

Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë