Egy API-nak a lehető leggyorsabban kell működnie, hogy potenciálisan nagy számú ügyfelet kiszolgáljon. Használja ezeket a tippeket az API-k maximális sebességre hangolásához.

A mikroszolgáltatási architektúra gyors elterjedése megszilárdította az API-k szerepét a modern fejlesztés elsődleges kommunikációs eszközeként. Az API-k hatékony adatcserét biztosítanak az ügyfelek és a szerveroldali alkalmazások, valamint a különböző háttérrendszerek között.

Az Express.js elegáns megoldást kínál a RESTful API-k létrehozásához. De alapvető fontosságú, hogy a teljesítménymutatókat prioritásként kezeljük a fejlesztés során.

Ez garantálja, hogy az API-k nem csak hatékonyan, hanem optimálisan is működnek. Végső soron egy jól működő webalkalmazás jobb felhasználói élményt és nagyobb esélyt ad a sikerre.

Teljesítményoptimalizálás Express.js REST API-khoz

Az Express.js a Node.js aszinkron jellegét és eseményvezérelt architektúráját használja a kivételes sebesség és teljesítmény eléréséhez.

Ennek ellenére az Express.js optimalizálása

instagram viewer
REST API-k még nagyobb haszonnal járhat. Ezek közé tartozik a jelentősen megnövelt válaszidő, fokozott megbízhatóság és az alkalmazások hatékonyságának növelése, ami zökkenőmentes és vonzó felhasználói élményhez vezet.

Az API-k teljesítményének előtérbe helyezésével előkészíti az utat a szoftver egészének sikere előtt.

Íme néhány tipp, amelyek segítségével javíthatja REST API-inak teljesítményét.

1. Adatbázislekérdezések optimalizálása

Az adatok adatbázisból való hatékony lekérése és kezelése jelentősen befolyásolhatja a REST API-k teljesítményét.

Az adatbázis-lekérdezések optimalizálásával jelentősen csökkentheti a lekérdezés végrehajtási idejét, és csökkentheti az erőforrás-felhasználást. Ez végső soron javítja az Express.js alkalmazás teljes teljesítményét.

Íme néhány hasznos tipp az adatbázis-lekérdezések optimalizálásához.

  1. Használat adatbázis indexek. Határozza meg a gyakran használt oszlopokat a lekérdezésekben, és hozzon létre megfelelő indexeket ezeken az oszlopokon. Ez lehetővé teszi az adatbázismotor számára, hogy gyorsan megtalálja és lekérje a szükséges adatokat, ami gyorsabb lekérdezést eredményez.
  2. Végezze el az oldalszámozást. Ha nagy adathalmazokkal foglalkozik, használjon oldalszámozást. Ahelyett, hogy az összes adatot egyszerre kérné le, korlátozza az egyes lekérdezésekben visszaadott adatok mennyiségét.
  3. Kerülje a redundáns lekérdezéseket. Elemezze a kódot, azonosítsa és hagyja ki a redundáns lekérdezéseket. A lekérdezések ennek megfelelő átalakítása jelentős teljesítményjavuláshoz vezethet.

2. Használja a gyorsítótárat az alkalmazásban

A gyorsítótárazás a gyakran használt adatok gyorsítótárban, ideiglenes tárolórendszerben való tárolására szolgáló technika. Egyszerűen fogalmazva, amikor egy kliens adatokat kér, a szerver először a gyorsítótárát ellenőrzi ahelyett, hogy közvetlenül lekérdezné az adatbázist.

Ha a gyorsítótárban megtalálja a kért adatot, azonnal visszaadja, megkerülve a további feldolgozás szükségességét vagy a tényleges adatbázis-hozzáférést. Ez jelentősen javítja az API-k teljesítményét azáltal, hogy csökkenti a válaszidőt és minimalizálja az alkalmazás terhelését, különösen több lekérdezés feldolgozása esetén.

Íme egy egyszerű kódpélda, amely bemutatja a gyorsítótárazás megvalósítását.

const expressz = igényelnek('Expressz');
const NodeCache = igényelnek("csomópont-gyorsítótár");

const gyorsítótár = új NodeCache();
const app = express();

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

ha (!cachedData) {
const fetchedData = fetchDataFromDatabase();
cache.set (cacheKey, fetchedData);
cachedData = fetchedData;
}

res.json (cachedData);
});

funkciófetchDataFromDatabase() {
//... az adatlekérési logika ide megy...
Visszatérés adat;
}

A fenti kód bemutatja, hogyan működik a gyorsítótárazás a csomópont-gyorsítótár könyvtár használatával. Kezdetben ellenőrzi, hogy a kért adatok már tárolva vannak-e a gyorsítótárban. Ha az adatok nem jelennek meg, akkor elindítja a függvényt az adatok lekérésére az adatbázisból, majd a lekért adatokat a gyorsítótárban tárolja. Végül JSON-válaszként visszaküldi a kért adatokat az ügyfélnek.

3. HTTP-tömörítés engedélyezése

A HTTP-tömörítés egy olyan technika, amellyel csökkenthető a kliens és a szerver között átvitt adatok mérete. Ez magában foglalja az API-válaszok tömörítését a szerver oldalon, és kicsomagolását a kliens oldalon.

A HTTP-tömörítés engedélyezésével jelentősen csökkenthető a választerhelések mérete, ami gyorsabb válaszidőt eredményez.

Íme egy kódpélda, amely bemutatja, hogyan engedélyezheti a HTTP-tömörítést a tömörítés köztes szoftver.

expressz = igényelnek('Expressz');
const tömörítés = igényelnek("tömörítés");

const app = express();
app.use (tömörítés());

app.get('/api/data', (req, res) => {
// Kezelje az API logikáját
});

Ez a kódrészlet köztes szoftver segítségével tömöríti az API-válaszokat, mielőtt visszaküldi azokat az ügyfélnek.

4. Végezze el a párhuzamos feldolgozást a Promise.all használatával

Párhuzamos feldolgozás segítségével Ígérd meg.mindent A módszer az API-k teljesítményének javítására szolgáló technika több aszinkron feladat egyidejű végrehajtásával.

A JavaScript-ígéretek erejét kihasználva a Promise.all lehetővé teszi az ígéretek egy gyűjteményének egyidejű végrehajtását, ahelyett, hogy az egyes ígéretek egymás utáni teljesítésére várna.

Ez a technika különösen akkor hasznos, ha független feladatai vannak, amelyek egyidejűleg futhatnak, például több kapcsolódó API-kérés küldése különböző végpontokhoz. Ha ezeket a feladatokat párhuzamosan hajtja végre, jelentősen csökkentheti a teljes végrehajtási időt, és javíthatja az API válaszkészségét.

Íme egy egyszerű kódpélda, amely bemutatja, hogyan valósítható meg a párhuzamos feldolgozás a Promise.all használatával.

const expressz = igényelnek('Expressz');
const axiók = igényelnek("axiók");

const app = express();

app.get('/api/data', async (req, res) => {
próbáld ki {
const request1 = axios.get(' https://api.example.com/endpoint1');
const request2 = axios.get(' https://api.example.com/endpoint2');
const request3 = axios.get(' https://api.example.com/endpoint3');

const [válasz1, válasz2, válasz3] = várjaÍgéret.minden([
kérés1,
kérés2,
kérés3
]);

// Szükség szerint dolgozza fel a válaszokat
} fogás (hiba) {
res.status(500).json({ hiba: 'hiba' });
}
});

Ebben a példában a kód három különböző végponthoz küld API-kérelmeket. A Promise.all függvény használatával, az ígéretek tömbjének átadásával a kód megvárja, amíg mindegyik befejeződik, mielőtt visszaadja a válaszokat egy tömbben.

Ha az összes választ megkapta, szükség szerint feldolgozhatja azokat. Ezzel a megközelítéssel azonban óvatosnak kell lennie, és kerülnie kell a túlzott használatot, mivel az túlterhelheti a szervert, ami szűk keresztmetszetek kialakulásához vezethet.

5. Használja a Database Connection Pooling alkalmazást

Az adatbázis-kapcsolat-készletezés olyan módszer, amely magában foglalja az újrafelhasználható adatbázis-kapcsolatok készletének létrehozását, hogy több ügyfélkérést hatékonyan kezelhessen.

Ahelyett, hogy minden egyes kéréshez új kapcsolatot hozna létre, az alkalmazás újra felhasználja a meglévő kapcsolatokat készlet, csökkentve az új kapcsolatok létrehozásának többletköltségét, ami gyorsabb és hatékonyabb lekérdezést eredményez végrehajtás.

Íme egy rövid kódpélda, amely bemutatja az adatbázis-kapcsolat pooling használatát Mongoose egy Express.js alkalmazásban.

const mangúz = igényelnek('indiai menyét');
const { kapcsolat } = igényelnek('indiai menyét');

const connectionOptions = {
medence mérete: 10,
useNewUrlParser: igaz,
UseUnifiedTopology: igaz
};

mongoose.connect('mongodb://localhost/sajatadatbázis', csatlakozási lehetőségek);

Ebben a példában a kapcsolatkészlet mérete tulajdonság 10-re van állítva – ez határozza meg a kapcsolatok maximális számát a készletben.

A konfiguráció beállításával az API újra felhasználhatja a kapcsolatokat, ami javítja az API-teljesítményt azáltal, hogy csökkenti az új kapcsolatok létrehozásának többletköltségét minden egyes kérés esetén.

Az API-teljesítmény prioritása a profit érdekében

Az Express.js API-k teljesítményének optimalizálása érdekében több lépést is megtehet. Az API-k játszanak a kulcsfontosságú szerepet tölt be, ezért elengedhetetlen, hogy a teljesítményükre összpontosítson, hogy garantálja az általános sikert szoftver.