DBanaszewski | 2019-07-04 19:50:55 UTC | #1
Jest to sposób, rozumiany jako ściśle określony zestaw reguł i ich opisów, w jaki programy komunikują się między sobą.
Do czego mi potrzebne API?
Przykładowo: będziesz robił/a stronę internetową z gigantycznym formularzem i innymi bajerami. Na owej stronie posiadasz 6 formularzy zgłoszeniowych, 3 formularze kontaktowe itp.
Każdy formularz musi być odpowiednio oskryptowany, aby wpisane dane mogły iść dalej (np. do bazy danych). Pisanie kodu dla każdego z tych formularzy jest czasochłonne i męczące, można zrobić jakiś mały błąd i klapa. Kopiowanie może pomóc, ale załóżmy, że każdy formularz jest inny. API pomoże Ci oszczędzić włosy, paznokcie itp.
Dlaczego Node.js?
Node.js to środowisko uruchomieniowe zaprojektowane do tworzenia wysoce skalowalnych aplikacji internetowych, szczególnie serwerów WWW napisanych w języku JavaScript.
Umożliwia tworzenie aplikacji sterowanych zdarzeniami wykorzystujących asynchroniczny system wejścia-wyjścia. Node.js można uruchomić na prawie każdym systemie, na każdej architekturze CPU (32-bity, 64-bity, ARM).W naszym wypadku serwerem WWW jest Express.
Co mi jest do tego potrzebne?
VPS (np. z lvlup.pro, z kodem
dbanaszewski.pl
12% taniej) / zwykły komputer
Node.js (można zainstalować przy pomocyapt install nodejs
[Debian/Ubuntu])
Manager pakietów Node.js - npm (można zainstalować przy pomocyapt install npm
[Debian/Ubuntu])
Node.js działa na prawie każdym systemie - API, które właśnie piszesz, możesz uruchomić na własnym komputerze, na Raspberry Pi - dlatego, za adres naszego API biorę
localhost
, a za system operacyjny - Debian/Ubuntu.
Krok 1
Najpierw, tworzymy katalog, w którym będzie znajdować się nasze API itp.
Tworzymy go przy pomocy mkdir JS-API
.
Po utworzeniu, przechodzimy do katalogu przy pomocy cd JS-API
.
Tam instalujemy wymagane paczki do Node.js.
Robimy to przy pomocy:
$ npm install express
Czekamy chwilę i gotowe!
Krok 2
Tworzymy potrzebne pliki tj. index.js
.
W pliku index.js
będzie znajdował się kod naszego API.
Możemy utworzyć ten plik przy pomocy:
$ touch index.js
Gotowe!
Krok 3
Mamy utworzone nasze pliki, teraz edytujemy kod API.
Osobiście preferuję edytor vim
, ty możesz użyć dowolnego.
Otwieramy edytor przy pomocy vim index.js
.
Mamy pusty plik, który wkrótce będzie coś zawierał.
Teraz musimy zaimportować serwer WWW Express
, robimy to pisząc:
var express = require("express");
Mamy zaimportowany serwer. Teraz musimy utworzyć naszą instancję serwera WWW.
Robimy to pisząc:
var app = express();
Nasz kod powinien tak wyglądać:
var express = require("express");
var app = express();
Idziemy dalej!
Krok 4
Teraz, wypadałoby zbudować podstawowy szkielet API.
Najpierw, musimy ustawić nasłuchiwane na danym porcie.
Zrobimy to przy pomocy:
app.listen(3000, "localhost", () => {
console.log("OK!");
});
Nasze API będzie działało pod adresem http://localhost:3000
.
Jeżeli uda się rozpocząć nasłuchiwanie, w konsoli otrzymamy OK!
.
Jeżeli nie uda się rozpocząć, otrzymamy błąd - być może port już jest wykorzystywany.
Możesz go zmienić na dowolny, najlepiej >1000 (<1000 wymaga uprawnień administratora [Linux]).
Stwórzmy teraz interpreter naszych żądań:
app.get("/", function (req, res) {
res.json({
"status": "ok"
});
});
Po wejściu na http://localhost:3000/
powinniśmy ujrzeć: {"status":"ok"}
.
Nasz kod powinien tak wyglądać:
var express = require("express");
var app = express();
app.get("/", function (req, res) {
res.json({
"status": "ok"
});
});
app.listen(3000, "localhost", () => {
console.log("OK!");
});
Po zapisaniu pliku, możemy uruchomić nasze API przy pomocy:
node index.js
Jeżeli wszystko będzie w porządku, w naszej konsoli zobaczymy:
OK!
Teraz wejdziemy w przeglądarkę na http://localhost:3000
.
Jeżeli zobaczysz {"status":"ok"}
to udało Ci się!
Udało Ci się zrobić podstawową wersję API, która w przyszłości będzie bardziej rozbudowana.
Opisz poniżej swoje napotkane problemy, możesz napisać również, czy pojawił się uśmiech na Twojej twarzy po przejściu przez ten poradnik :slight_smile:
Jeżeli uważasz, że coś jest źle lub coś nie działa, zerknij na repozytorium, gdzie znajdziesz cały kod wraz z instrukcją - jak to uruchomić na swoim serwerze VPS/PC (z Linuxem).
Błędy proszę zgłaszać poniżej lub w repozytorium (tylko język angielski).
kotyk | 2019-02-26 20:13:00 UTC | #2
Wygląda spoko :slight_smile:
kotyk | 2019-02-26 20:17:16 UTC | #3
Masz w planach dodać do poradnika funkcję pobierania danych z bazy MySQL/MariaDB?
DBanaszewski | 2019-02-26 20:18:21 UTC | #4
Może do tego poradnika nie, ale na pewno będzie uwzględnione to w kolejnych poradnikach ;)
SP24 | 2019-02-27 08:07:43 UTC | #5
Super pomysł. Na pewno przyda się wielu osobom.
DoreK | 2019-02-27 21:36:45 UTC | #6
Oo, to może mi się przydać, dzięki :) Co w następnych poradnikach? :]
psycho | 2019-02-27 22:27:18 UTC | #7
@DBanaszewski Możesz też dodać do zastosowań tworzenie czatów odświeżanych w czasie rzeczywistym :stuckouttongue:
A takie pytanie czysto teoretyczne: tworzysz aplikację biznesową, użyjesz PHP czy wszystko postawisz w JS? :stuckouttongue:
DBanaszewski | 2019-02-28 06:13:06 UTC | #8
@DoreK na pewno będzie konfiguracja i współpraca z bazami MySQL ;)
@psycho PHP dalej jest popularnym językiem do tworzenia stron WWW, ale ja użyłbym Node.js (czyli serwer Express + proxy nginx). Na w2 obecnie używam jeszcze PHP, ale wkrótce zainteresuję się Node.js ;)
kotyk | 2019-06-16 20:04:41 UTC | #10
Będzie można się spodziewać tego drugiego poradnika?
Bo tak trochu czasu mineło, jeżeli nie masz weny to rozumiem ale wolę wiedzieć bo nadal czekam :wink:
trochę bump, ale trudno
Bump | 2019-06-17 12:16:56 UTC | #11
Jaki sens wlasciwie ma ten poradnik?
To sa raczej podstawy
DBanaszewski | 2019-06-17 12:23:16 UTC | #12
[quote=”Bump, post:11, topic:10294”]
Jaki sens wlasciwie ma ten poradnik?
[/quote]
Co prawda, są to podstawy, ale frameworka Express, nie Node.js.
[quote=”kotyk, post:10, topic:10294”]
Będzie można się spodziewać tego drugiego poradnika?
[/quote]
Tak, jak znajdę trochę wolnego czasu to zrobię go :slight_smile: