Postman telepítése
A Node.js telepítése
Node.js projektünk inicializálása
Az Express.js beállítása
A fő fájl elindítása
Az API tesztelése a Postman segítségével
API útvonalak
Bevezetés az NGINX-be
Az NGINX beállítása
Első futtatás NGINX-szel
Az API működésének fenntartása
Alkalmazásunk kezelése PM2-vel
Záró megjegyzések
Ebből az oktatóanyagból megtudhatja, hogyan állíthat be egy teljes RESTful API-t, amely a HTTP-kéréseket Node.js és Express használatával szolgálja ki, miközben fordított proxyt NGINX-szel Ubuntu 16.04 LTS-en. A Postman nevű alkalmazást fogjuk használni, egy nagyon jól ismert API-fejlesztő eszköz, amellyel tesztelhetjük API-nkat, és megbizonyosodhatunk arról, hogy teljesen működőképes és megfelelően működik. A Node.js egy gyors, többplatformos JavaScript-keretrendszer, amely a Chrome V8-as motorján alapul. Asztali és szerveralkalmazásokban egyaránt használják, és híres egyszálú eseményhurok kezeléséről. A Node.js-t fogjuk használni a RESTful API háttérprogramjaként, amely a Node.js-hez épített webalkalmazás-keretrendszerünk, az Express.js-szel van csomagolva. Az Express.js ingyenes és nyílt szoftverként jelenik meg. Az Express szerveroldali, JavaScriptben íródott, és API-k építésére készült, így tökéletes a projektünkhöz. Másrészt a Postman egy nagyon erős HTTP-kliens, az API-fejlesztést szem előtt tartva. Az API-fejlesztéshez szükséges összes eszközt tartalmazza.
Postman telepítése
Először is fel kell lépnie a Postman webhelyére , és letöltenie és telepítenie kell a Postman-t a fő számítógépére (nem a szerverére). Minden telepítési utasítás megtalálható a weboldalukon.
A Node.js telepítése
A kezdéshez először telepítenünk kell a Node.js-t, hogy elkezdhessük az API fejlesztését. A Node.js fájl letöltése és telepítése a hivatalos webhelyről történik.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
Ezen kívül érdemes megragadni a szükséges összeállítási eszközöket is, amelyek hasznosak lesznek a modulok összeállításában.
sudo apt-get install build-essential
Ebben az oktatóanyagban a Node.js LTS verzióját fogjuk használni, amely a 8.9.3 verzió.
Node.js projektünk inicializálása
Inicializálnunk kell egy új Node.js projektet, amely egy alkalmazást fog tartalmazni. Ehhez hozzon létre egy új könyvtárat.
mkdir expressapi
Váltás az új könyvtárra. Miután belépett, futtassa, npm inités töltse ki az összes szükséges utasítást. Jegyezze fel alkalmazása "belépési pontját": ezt a fájlt később hozza létre. Ha végzett, látni fog egy package.jsonfájlt az aktuális könyvtárában. Ez a projekt leírásaként működik, és felsorolja a működéshez szükséges összes függőséget.
Az Express.js beállítása
Most konfiguráljuk az Express.js-t és annak függőségeit.
npm install express
Megkezdődik a telepítési folyamat. Eltart néhány percig, amíg minden befejeződik a letöltéssel.
A fő fájl elindítása
Ezután létrehozzuk az API fő kezdőfájlját. Itt fogja használni a package.jsonfájlban látott "belépési pontot" . Az oktatóanyag kedvéért az alapértelmezett elnevezési sémát fogom használni, index.js.
touch index.js
Ezután nyissa meg a nano szövegszerkesztőben.
nano index.js
A fő fájlunkban először meg akarjuk hívni az összes fő csomagunkat, és regisztrálni szeretnénk az útvonalainkat.
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);
Alapvetően az alkalmazásunk inicializálása és egy alapvető útválasztó beállítása az API-nkhoz. Vegye figyelembe, hogy az alkalmazásunk portját a következőre állítottuk 8080. Erre a számra a RESTful API konfigurálásakor lesz szükségünk. Most készen állunk az API tesztelésére.
Az API tesztelése a Postman segítségével
A projektkönyvtárban futtassa a következőt.
node <filename>.js
Ezzel elindítja az API-t, ahol <filename>a fájlban megadott package.jsonkezdőfájl található. Ezután nyissa meg a Postmant PC/Mac számítógépén, kattintson a Newjobb felső sarokban található " " gombra, majd kattintson a " Request" gombra . Amikor ott van, egy sávot kell látnia GETmellette a következő felirattal: " ". Ide írjuk be kérésünk URL-jét. Egyszerűen írja be a következőket a kérelem URL szakaszába, majd kattintson a " Send" gombra .
`http://your-server-ip:3000/api`
A következőt fogja látni: " 'API is online'".
API útvonalak
Az útvonalak kezeléséhez az Express útválasztót fogjuk használni. Ha nem tudja, mi az az útválasztó, akkor ez lényegében az, hogy az alkalmazás végpontjai hogyan reagálnak az ügyfelek kérésére. Íme az útvonalak, amelyeket példaként beállítunk:
Most beállítjuk az első útvonal köztes szoftver struktúránkat, hasonlóképpen.
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})
});
Ebben a példában egy olyan helyzetet állítottunk fel, amikor a felhasználó a GET metódussal lekérheti egy szám + 1 összegét a szóalakot megadva. A router.route()függvény segítségével rámutatunk arra a számra, amelyet ennek eredményeként vissza akarunk küldeni. A paraméterek elnevezése :előtt " " van. Ezeket a paramétereket a következőn keresztül érjük el req.params.
Íme egy példa betűkkel.
router.route('/letters/:letter').get((req, res) => {
res.json({result: req.params.letter.toUpperCase()})
});
A fenti módszert alkalmazzuk, de a levelet nagybetűvel küldjük vissza.
Bevezetés az NGINX-be
Az NGINX egy jól ismert nyílt forráskódú szoftver, amelyet webszolgáltatásra, fordított proxykra, streamelésre és egyebekre használnak. Az NGINX-et fogjuk használni az API-nk proxyjának megfordításához, hogy lehetővé tegyük a porton való futtatását 80, mivel a Node.js nem engedélyezi a kapcsolatokat 1024-nél kisebb portokon root hozzáférés nélkül. Ez hasznos lehet a domain és a szerver összekapcsolásakor.
Az NGINX beállítása
Az NGINX telepítésének megkezdéséhez futtassa a következőt a terminálon, és várja meg, amíg a telepítés befejeződik.
sudo apt-get install nginx
Ezután létrehozzuk a webhelyfájlunkat, amelyet az NGINX az alkalmazásunk proxyjának visszafordításához fog használni.
sudo nano /etc/nginx/sites-available-api.js
Töltse ki a fájlt a következővel, majd a mentéséhez a CTRL+ jellel O.
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;
}
}
Ugyanazon a porton, amelyen az alkalmazásunkat korábban 80futtattuk , azt mondjuk az Nginxnek, hogy irányítsa át az összes kérést a porton lévő IP-címünkről a porton futó API-ra 8080.
Ezután engedélyezze a fordított proxyt úgy, hogy az újonnan létrehozott fájlunkat szimbolizálja a sites-availablemappával:
sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-available
Ez biztosítja, hogy az NGINX megfordítsa az API-nkat.
Első futtatás NGINX-szel
Miután befejeztük az NGINX konfigurációját, elindítjuk az NGINX-et, majd elindítjuk az API-t. Először indítsa újra az NGINX-et.
sudo systemctl restart nginx
Ezután térjen vissza az API-könyvtárba, és indítsa el.
node <filename>.js
Az alkalmazás a porton fog futni 80. Egyszerűen futtassa le a tesztet felülről a Postman segítségével, hogy megbizonyosodjon arról, hogy minden megfelelően működik.
Az API működésének fenntartása
Éles környezetben győződjön meg arról, hogy rendelkezik egy folyamatkezelővel a csomópont-alkalmazásokhoz, hogy azok örökké a háttérben futhassanak. Ebben az oktatóanyagban a PM2 (Process Manager 2) nevű folyamatkezelőt fogjuk használni, amely a Node.js alkalmazások folyamatkezelője, amely minimális állásidővel örökre életben tartja azokat. A PM2 számos hasznos felügyeleti eszközzel érkezik, mint például a leállítás, újratöltés, szüneteltetés stb. A PM2 telepítéséhez írja be a következőt, és várja meg a telepítést.
sudo npm install pm2 -g
A telepítés után nem kell mást tennie, mint megbizonyosodni arról, hogy a projektkönyvtárban van, írja be a következőket, és az alkalmazás elindul.
pm2 start <filename>.js
Alkalmazásunk kezelése PM2-vel
Amint azt korábban említettük, a PM2 rendelkezik néhány hasznos eszközzel, amelyek segítségével jobban kezelheti az alkalmazást.
pm2 stop- Ahogy a neve is sugallja, ez lehetővé teszi az éppen futó alkalmazás leállítását és folyamatának leállítását. Ha az alkalmazás váratlan eredményt hoz, akkor hasznos lesz a leállítása.
pm2 list- A lista funkció lehetővé teszi az összes jelenleg futó alkalmazás megtekintését a PM2-n keresztül, a nevükkel leképezve. Ha gyorsan szeretné ellenőrizni az alkalmazás üzemidejét, használja ezt az eszközt.
pm2 restart- Ha az alkalmazás valamilyen okból lefagy, és újra szeretné tölteni, a pm2 restart pontosan ezt teszi. Leállítja a jelentkezési folyamatot, és újrakezdi, egy másik folyamat alatt.
pm2 monit- A PM2 beépített monitoreszköze lehetővé teszi, hogy egy felhasználóbarát ncurses-stílusú grafikonon megtekintse az alkalmazás konkrét részleteit, például a CPU/RAM-használatot. Ez akkor hasznos, ha vizuális képet szeretne az alkalmazás betöltődéséről.
Mostanra befejeztük azt a feladatunkat, hogy létrehozunk egy RESTful API-t Node.js, Express használatával, és fordított proxyt az NGINX-szel. Nyugodtan bővítse ki ezt az oktatóanyagot. Az új API-val sok nagyszerű dolgot tehet, például hitelesítési módszereket, adatbázist, jobb útvonal- és hibakezelést és még sok minden mást. Ha van olyan domainje, amelyben már be van állítva egy „A” rekord az Ön IP-címéhez, akkor a domainjéből hozzáférhet API-jához. Ha többet szeretne megtudni az Express.js-ről, látogassa meg webhelyüket a http://expressjs.com címen . Ha többet szeretne megtudni az NGINX-ről és a fordított proxyról, látogasson el a http://nginx.com webhelyre . Ha többet szeretne megtudni a PM2-ről, látogassa meg oldalukat a http://pm2.keymetrics.io címen .