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
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.
- 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.
- 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.
- 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.