API turi veikti kuo greičiau, kad galėtų aptarnauti potencialiai didelį klientų skaičių. Naudokite šiuos patarimus, kad sureguliuotumėte savo API maksimaliam greičiui.

Greitas mikro paslaugų architektūros pritaikymas sustiprino API, kaip pagrindinės šiuolaikinės plėtros komunikacijos priemonės, vaidmenį. API suteikia veiksmingą duomenų mainų tarp klientų ir serverio programų, taip pat tarp skirtingų užpakalinių sistemų, priemonę.

Express.js suteikia elegantišką sprendimą RESTful API kurti. Tačiau labai svarbu teikti pirmenybę našumo priemonėms plėtojant.

Tai garantuoja, kad jūsų API ne tik veiks efektyviai, bet ir veiks optimaliai. Galiausiai gerai veikianti žiniatinklio programa užtikrina geresnę naudotojo patirtį ir didesnę sėkmės galimybę.

Express.js REST API našumo optimizavimas

Express.js naudoja asinchroninį Node.js pobūdį ir įvykiais pagrįstą architektūrą, kad pasiektų išskirtinį greičio ir našumo lygį.

Nepaisant to, optimizuojant Express.js REST API gali duoti dar didesnę naudą. Tai apima žymiai patobulintą atsako laiką, didesnį patikimumą ir didesnį jūsų programų efektyvumą, todėl naudotojai gali naudotis sklandžiai ir patraukliais.

instagram viewer

Suteikdami pirmenybę API našumui, sudarote kelią visos programinės įrangos sėkmei.

Štai keletas patarimų, kuriuos galite naudoti norėdami pagerinti REST API našumą.

1. Optimizuokite duomenų bazės užklausas

Veiksmingas duomenų gavimas ir manipuliavimas iš duomenų bazės gali labai paveikti REST API veikimą.

Optimizuodami duomenų bazės užklausas galite žymiai sutrumpinti užklausos vykdymo laiką ir sumažinti išteklių suvartojimą. Tai galiausiai pagerins visos jūsų Express.js programos našumą.

Štai keletas naudingų patarimų, kaip optimizuoti duomenų bazės užklausas.

  1. Naudokite duomenų bazės indeksai. Nustatykite užklausose dažnai naudojamus stulpelius ir sukurkite atitinkamus tų stulpelių indeksus. Tai leidžia duomenų bazės varikliui greitai surasti ir nuskaityti reikiamus duomenis, todėl užklausa vykdoma greičiau.
  2. Įdiekite puslapių spausdinimą. Kai dirbate su dideliais duomenų rinkiniais, naudokite puslapių rūšiavimą. Užuot gavęs visus duomenis iš karto, apribokite kiekvienoje užklausoje pateikiamų duomenų kiekį.
  3. Venkite perteklinių užklausų. Išanalizuokite savo kodą, nustatykite ir praleiskite visas perteklines užklausas. Atitinkamai pertvarkydami savo užklausas, galite žymiai pagerinti našumą.

2. Naudokite talpyklą visoje programoje

Talpykla yra metodas, naudojamas dažnai pasiekiamiems duomenims saugoti talpykloje, laikinojoje saugojimo sistemoje. Paprasčiau tariant, kai klientas prašo duomenų, serveris pirmiausia patikrina savo talpyklą, o ne tiesiogiai pateikia duomenų bazės užklausas.

Jei talpykloje randa prašomus duomenis, jis nedelsdamas grąžina juos, apeidamas tolesnio apdorojimo poreikį arba faktinę prieigą prie duomenų bazės. Tai žymiai pagerina API našumą sumažinant atsako laiką ir sumažinant programos apkrovą, ypač apdorojant kelias užklausas.

Štai paprastas kodo pavyzdys, rodantis, kaip įdiegti talpyklą.

konst išreikšti = reikalauti("išreikšti");
konst NodeCache = reikalauti(„mazgo talpykla“);

konst talpykla = naujas NodeCache ();
konst programa = express ();

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

jeigu (!cachedData) {
konst fetchedData = fetchDataFromDatabase();
cache.set (cacheKey, fetchedData);
cachedData = fetchedData;
}

res.json (cachedData);
});

funkcijafetchDataFromDatabase() {
//... čia eina duomenų gavimo logika...
grąžinti duomenys;
}

Aukščiau pateiktas kodas parodo, kaip veikia talpyklos kaupimas naudojant mazgo talpyklos biblioteką. Iš pradžių ji patikrina, ar prašomi duomenys jau yra saugomi talpykloje. Jei duomenų nėra, ji suaktyvina duomenų gavimo iš duomenų bazės funkciją, tada išsaugo gautus duomenis talpykloje. Galiausiai grąžina prašomus duomenis klientui kaip JSON atsakymą.

3. Įgalinti HTTP glaudinimą

HTTP glaudinimas yra metodas, kurį galite naudoti norėdami sumažinti duomenų, perduodamų tarp kliento ir serverio, dydį. Tai apima API atsakymų suspaudimą serverio pusėje ir jų išglaudinimą kliento pusėje.

Įjungus HTTP glaudinimą, atsakymų apkrovų dydis gali būti žymiai sumažintas, todėl atsako laikas bus greitesnis.

Štai kodo pavyzdys, kuriame parodyta, kaip įjungti HTTP glaudinimą naudojant suspaudimas tarpinė programinė įranga.

išreikšti = reikalauti("išreikšti");
konst suspaudimas = reikalauti("suspaudimas");

konst programa = express ();
app.use (suspaudimas());

app.get(„/api/data“, (req, res) => {
// Tvarkykite savo API logiką
});

Šis kodo fragmentas naudoja tarpinę programinę įrangą, kad suspaustų API atsakymus prieš grąžinant juos klientui.

4. Įdiekite lygiagretųjį apdorojimą naudodami Promise.all

Lygiagretus apdorojimas naudojant Pažadėk.visi metodas yra metodas, naudojamas pagerinti API našumą vienu metu vykdant kelias asinchronines užduotis.

Išnaudodama „JavaScript“ pažadų galią, „Promise.all“ leidžia vienu metu vykdyti pažadų rinkinį, o ne laukti, kol kiekvienas pažadas išsipildys nuosekliai.

Ši technika ypač naudinga, kai turite nepriklausomų užduočių, kurios gali būti vykdomos vienu metu, pvz., pateikiate kelias susijusias API užklausas skirtingiems galutiniams taškams. Vykdydami šias užduotis lygiagrečiai, galite žymiai sutrumpinti bendrą vykdymo laiką ir pagerinti savo API reagavimą.

Štai paprastas kodo pavyzdys, rodantis, kaip įgyvendinti lygiagretų apdorojimą naudojant Promise.all.

konst išreikšti = reikalauti("išreikšti");
konst axios = reikalauti("aksios");

konst programa = express ();

app.get(„/api/data“, async (req, res) => {
bandyti {
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 [atsakymas1, atsakymas2, atsakymas3] = lauktiPažadas.all([
1 prašymas,
2 prašymas,
prašymas3
]);

// Apdorokite atsakymus pagal poreikį
} sugauti (klaida) {
res.status(500.json({ klaida: 'klaida' });
}
});

Šiame pavyzdyje kodas pateikia API užklausas trims skirtingiems galutiniams taškams. Naudodamas funkciją Promise.all, perduodamas pažadų masyvą, kodas laukia, kol jie visi baigsis, prieš grąžindamas atsakymus masyve.

Kai gausite visus atsakymus, galėsite juos apdoroti pagal poreikį. Tačiau turėtumėte būti atsargūs taikydami šį metodą ir vengti pernelyg didelio naudojimo, nes tai gali perkrauti serverį ir sukelti API atsako kliūtis.

5. Naudokite duomenų bazės ryšio kaupimą

Duomenų bazės ryšio telkimas yra metodas, kuris apima daugkartinio naudojimo duomenų bazių jungčių telkinį, kad būtų galima efektyviai apdoroti kelias klientų užklausas.

Užuot užmezgusi naują ryšį kiekvienai užklausai, programa pakartotinai naudoja esamus ryšius iš baseinas, sumažinant naujų ryšių užmezgimo išlaidas, todėl užklausa atliekama greičiau ir efektyviau egzekucija.

Štai trumpo kodo pavyzdys, parodantis, kaip naudoti duomenų bazės ryšio telkimą Mongoose Express.js programoje.

konst mangustas = reikalauti("mangustas");
konst { ryšys } = reikalauti("mangustas");

konst ryšio parinktys = {
baseino dydis: 10,
useNewUrlParser: tiesa,
naudokite vieningą topologiją: tiesa
};

mongoose.connect(„mongodb://localhost/mydatabase“, ryšio Parinktys);

Šiame pavyzdyje ryšio telkinio dydžio ypatybė nustatyta į 10 – tai nurodo maksimalų jungčių skaičių telkinyje.

Nustačiusi šią konfigūraciją, API gali pakartotinai naudoti ryšius, todėl pagerėja API našumas, nes sumažėja naujų ryšių užmezgimas kiekvienai užklausai.

Pirmenybė teikiama API našumui siekiant pelno

Norėdami optimizuoti Express.js API našumą, galite atlikti kelis veiksmus. API groja a lemiamas vaidmuo, todėl labai svarbu sutelkti dėmesį į jų veiklą, kad garantuotumėte bendrą jūsų sėkmę programinė įranga.