API peab töötama nii kiiresti kui võimalik, et teenindada potentsiaalselt suurt hulka kliente. Kasutage neid näpunäiteid oma API-de häälestamiseks maksimaalse kiiruse saavutamiseks.

Mikroteenuste arhitektuuri kiire kasutuselevõtt on tugevdanud API-de rolli kaasaegse arengu peamise suhtlusvahendina. API-d pakuvad tõhusat vahendit andmevahetuseks klientide ja serveripoolsete rakenduste vahel, aga ka erinevate taustasüsteemide vahel.

Express.js pakub elegantset lahendust RESTful API-de loomiseks. Kuid on oluline seada esikohale jõudlusnäitajad kogu arenduse ajal.

See tagab, et teie API-d mitte ainult ei tööta tõhusalt, vaid töötavad ka optimaalselt. Lõppkokkuvõttes annab hästi toimiv veebirakendus parema kasutuskogemuse ja suurema eduvõimaluse.

Express.js REST API-de jõudluse optimeerimine

Express.js kasutab Node.js'i asünkroonset olemust ja sündmustepõhist arhitektuuri, et saavutada erakordne kiirus ja jõudlus.

Sellegipoolest on Express.js optimeerimine REST API-d võib anda veelgi suuremat kasu. Nende hulka kuuluvad oluliselt paranenud reageerimisajad, suurem töökindlus ja teie rakenduste suurem tõhusus, mis tagab sujuva ja kaasahaarava kasutuskogemuse.

instagram viewer

Seades prioriteediks oma API-de jõudluse, sillutate teed oma tarkvara kui terviku edule.

Siin on mõned näpunäited, mida saate kasutada oma REST API-de jõudluse parandamiseks.

1. Andmebaasipäringute optimeerimine

Andmete tõhus toomine ja töötlemine andmebaasist võib oluliselt mõjutada REST API-de jõudlust.

Andmebaasipäringuid optimeerides saate oluliselt lühendada päringu täitmise aega ja vähendada ressursside tarbimist. See parandab lõppkokkuvõttes teie Express.js rakenduse kui terviku jõudlust.

Siin on mõned kasulikud näpunäited andmebaasipäringute optimeerimiseks.

  1. Kasuta andmebaasi indeksid. Tuvastage päringutes sageli kasutatavad veerud ja looge nendele veergudele sobivad indeksid. See võimaldab andmebaasimootoril kiiresti leida ja hankida vajalikud andmed, mille tulemuseks on kiirem päringu täitmine.
  2. Rakendage lehekülgede jagamist. Kui käsitlete suuri andmekogumeid, kasutage lehekülgede jagamist. Kõigi andmete korraga toomise asemel piirake igas päringus tagastatavate andmete hulka.
  3. Vältige üleliigseid päringuid. Analüüsige oma koodi, tuvastage ja jätke vahele kõik üleliigsed päringud. Päringute vastavalt ümbertöötamine võib jõudlust oluliselt parandada.

2. Kasutage vahemällu kogu oma rakenduses

Vahemällu salvestamine on meetod, mida kasutatakse sageli kasutatavate andmete salvestamiseks vahemällu, ajutisse salvestussüsteemi. Lihtsamalt öeldes, kui klient küsib andmeid, kontrollib server esmalt oma vahemälu, selle asemel, et otse andmebaasist päringuid teha.

Kui ta leiab vahemälust küsitud andmed, tagastab ta need kohe, jättes mööda edasise töötlemise vajadusest või tegelikust juurdepääsust andmebaasile. See parandab oluliselt API-de jõudlust, vähendades reageerimisaegu ja minimeerides rakenduse koormust, eriti mitme päringu töötlemisel.

Siin on lihtne koodinäide, mis demonstreerib vahemällu salvestamist.

konst väljendada = nõuda('väljendama');
konst NodeCache = nõuda('sõlme vahemälu');

konst vahemälu = uus NodeCache();
konst rakendus = express();

app.get('/api/data', (req, res) => {
konst cacheKey = 'andmed';
konst cachedData = cache.get (cacheKey);

kui (!cachedData) {
konst fetchedData = toodaDataFromDatabase();
cache.set (cacheKey, fetchedData);
cachedData = fetchedData;
}

res.json (cachedData);
});

funktsioonihankidaDataFromDatabase() {
//... andmete toomise loogika läheb siia ...
tagasi andmed;
}

Ülaltoodud kood näitab, kuidas vahemälu toimib sõlme vahemälu teegi abil. Esialgu kontrollib see, kas küsitud andmed on juba vahemällu salvestatud. Kui andmeid pole, käivitab see funktsiooni andmete toomiseks andmebaasist ja salvestab seejärel toodud andmed vahemällu. Lõpuks tagastab nõutud andmed kliendile JSON-vastusena.

3. Luba HTTP tihendamine

HTTP tihendamine on tehnika, mida saate kasutada kliendi ja serveri vahel edastatavate andmete mahu vähendamiseks. See hõlmab API vastuste tihendamist serveri poolel ja nende lahtipakkimist kliendi poolel.

HTTP tihendamise lubamisega saab vastuse kasulike koormuste suurust oluliselt vähendada, mis viib kiirema reageerimisajani.

Siin on koodinäide, mis näitab, kuidas lubada HTTP-tihendust kasutades kokkusurumine vahevara.

väljendada = nõuda('väljendama');
konst kokkusurumine = nõuda('kompressioon');

konst rakendus = express();
app.use (compression());

app.get('/api/data', (req, res) => {
// Käsitsege oma API loogikat
});

See koodilõik kasutab API vastuste tihendamiseks vahevara, enne kui see kliendile tagastab.

4. Rakendage paralleeltöötlust Promise.all abil

Paralleeltöötluse kasutamine Luba.kõik meetod on meetod, mida kasutatakse API-de jõudluse parandamiseks, täites samaaegselt mitut asünkroonset toimingut.

JavaScripti lubaduste võimsust ära kasutades võimaldab Promise.all täita lubaduste kogumit üheaegselt, selle asemel, et oodata iga lubaduse järjestikust täitmist.

See tehnika on eriti kasulik siis, kui teil on sõltumatud ülesanded, mida saab samaaegselt käivitada, näiteks teha mitu seotud API päringut erinevatele lõpp-punktidele. Neid ülesandeid paralleelselt täites saate märkimisväärselt lühendada üldist täitmisaega ja parandada oma API reageerimisvõimet.

Siin on lihtne koodinäide, mis demonstreerib paralleeltöötluse rakendamist Promise.all abil.

konst väljendada = nõuda('väljendama');
konst axios = nõuda("axios");

konst rakendus = express();

app.get('/api/data', asünkr (req, res) => {
proovi {
konst request1 = axios.get(' https://api.example.com/endpoint1');
konst request2 = axios.get(' https://api.example.com/endpoint2');
konst request3 = axios.get(' https://api.example.com/endpoint3');

konst [vastus1, vastus2, vastus3] = ootamaLubadus.all([
taotlus1,
taotlus2,
taotlus 3
]);

// Töötle vastuseid vastavalt vajadusele
} püüda (viga) {
res.status(500).json({ viga: 'viga' });
}
});

Selles näites teeb kood API päringuid kolmele erinevale lõpp-punktile. Funktsiooni Promise.all kasutades, edastades lubaduste massiivi, ootab kood, kuni need kõik lõpetavad, enne kui tagastab vastused massiivina.

Kui olete kõik vastused saanud, saate neid vastavalt vajadusele töödelda. Siiski peaksite selle lähenemisviisiga olema ettevaatlik ja vältima liigset kasutamist, kuna see võib serverit üle koormata, põhjustades API-vastuse kitsaskohti.

5. Kasutage andmebaasiühenduse kogumist

Andmebaasiühenduste ühendamine on meetod, mis hõlmab korduvkasutatavate andmebaasiühenduste kogumi loomist, et tõhusalt käsitleda mitut kliendipäringut.

Selle asemel, et luua iga päringu jaoks uus ühendus, kasutab rakendus olemasolevaid ühendusi uuesti bassein, mis vähendab uute ühenduste loomise üldkulusid, mille tulemuseks on kiirem ja tõhusam päring hukkamine.

Siin on lühikoodinäide, mis näitab, kuidas kasutada andmebaasiühenduse ühendamist Mongoose Express.js rakenduses.

konst mangust = nõuda("mongoose");
konst {ühendus} = nõuda("mongoose");

konst ühenduse valikud = {
basseini suurus: 10,
useNewUrlParser: tõsi,
UseUnifiedTopology: tõsi
};

mongoose.connect('mongodb://localhost/mydatabase', ühendusValikud);

Selles näites on ühenduse basseini suuruse atribuudiks seatud 10 – see määrab kogumis olevate ühenduste maksimaalse arvu.

Selle konfiguratsiooni määramisel saab API ühendusi uuesti kasutada, mille tulemuseks on parem API jõudlus, vähendades iga päringu jaoks uute ühenduste loomise kulusid.

API jõudluse eelistamine kasumi saamiseks

Express.js API-de toimivuse optimeerimiseks saate teha mitu sammu. API-d mängivad a ülioluline roll, seega on oluline keskenduda nende tulemustele, et tagada oma üldine edu tarkvara.