API musí fungovat tak rychle, jak jen může, aby obsluhovalo potenciálně velký počet klientů. Pomocí těchto tipů vylaďte svá rozhraní API na maximální rychlost.
Rychlé přijetí architektury mikroslužeb upevnilo roli API jako primárního komunikačního prostředku pro moderní vývoj. Rozhraní API poskytují efektivní prostředky pro výměnu dat mezi klienty a aplikacemi na straně serveru a také mezi různými backendovými systémy.
Express.js poskytuje elegantní řešení pro vytváření RESTful API. Je však nezbytné upřednostňovat měření výkonu během vývoje.
To zaručuje, že vaše API nejen efektivně fungují, ale také optimálně fungují. Výsledkem dobře fungující webové aplikace je v konečném důsledku lepší uživatelský dojem a větší šance na úspěch.
Optimalizace výkonu pro Express.js REST API
Express.js využívá asynchronní povahu Node.js a architekturu řízenou událostmi k dosažení výjimečné úrovně rychlosti a výkonu.
Nicméně optimalizace Express.js REST API může přinést ještě větší výhody. Patří mezi ně výrazně vylepšené doby odezvy, zvýšená spolehlivost a zvýšená efektivita vašich aplikací, což vede k bezproblémovým a poutavým uživatelským zkušenostem.
Upřednostněním výkonu vašich rozhraní API připravíte cestu k úspěchu vašeho softwaru jako celku.
Zde je několik tipů, které můžete použít ke zvýšení výkonu vašich REST API.
1. Optimalizujte databázové dotazy
Efektivní načítání a manipulace s daty z databáze může podstatně ovlivnit výkon REST API.
Optimalizací databázových dotazů můžete výrazně zkrátit dobu provádění dotazu a snížit spotřebu zdrojů. To v konečném důsledku zvýší výkon vaší aplikace Express.js jako celku.
Zde je několik užitečných tipů pro optimalizaci databázových dotazů.
- Použití databázové indexy. Identifikujte často používané sloupce v dotazech a vytvořte pro tyto sloupce vhodné indexy. To umožňuje databázovému stroji rychle najít a načíst požadovaná data, což vede k rychlejšímu provádění dotazu.
- Implementujte stránkování. Při práci s velkými datovými sadami použijte stránkování. Namísto načítání všech dat najednou omezte množství dat vrácených v každém dotazu.
- Vyhněte se nadbytečným dotazům. Analyzujte svůj kód, identifikujte a vynechejte jakékoli nadbytečné dotazy. Odpovídající refaktoring vašich dotazů může vést k podstatnému zlepšení výkonu.
2. Používejte mezipaměť v celé své aplikaci
Ukládání do mezipaměti je technika používaná k ukládání často používaných dat do mezipaměti, dočasného úložného systému. Jednoduše řečeno, když klient požaduje data, server nejprve zkontroluje svou mezipaměť namísto přímého dotazování na databázi.
Pokud nalezne požadovaná data v cache, okamžitě je vrátí a obejde tak nutnost dalšího zpracování nebo samotného přístupu k databázi. To výrazně zlepšuje výkon rozhraní API snížením doby odezvy a minimalizací zatížení aplikace, zejména při zpracování více dotazů.
Zde je jednoduchý příklad kódu demonstrující, jak implementovat ukládání do mezipaměti.
konst vyjádřit = vyžadovat('vyjádřit');
konst NodeCache = vyžadovat('node-cache');konst cache = Nový NodeCache();
konst app = express();app.get('/api/data', (req, res) => {
konst cacheKey = 'data';
konst cachedData = cache.get (cacheKey);
-li (!data v mezipaměti) {
konst fetchedData = fetchDataFromDatabase();
cache.set (cacheKey, fetchedData);
cachedData = fetchedData;
}res.json (cachedData);
});
funkcefetchDataFromDatabase() {
//... Zde je logika načítání dat...
vrátit se data;
}
Výše uvedený kód ukazuje, jak funguje ukládání do mezipaměti pomocí knihovny node-cache. Nejprve zkontroluje, zda jsou požadovaná data již uložena v mezipaměti. Pokud data nejsou přítomna, spustí funkci pro načtení dat z databáze a poté uloží načtená data do mezipaměti. Nakonec vrátí požadovaná data klientovi jako odpověď JSON.
3. Povolit kompresi HTTP
Komprese HTTP je technika, kterou můžete použít ke snížení velikosti dat přenášených mezi klientem a serverem. Zahrnuje komprimaci odpovědí API na straně serveru a jejich dekomprimaci na straně klienta.
Povolením komprese HTTP lze výrazně snížit velikost datové zátěže odpovědí, což vede k rychlejší době odezvy.
Zde je příklad kódu, který ukazuje, jak povolit kompresi HTTP pomocí komprese middleware.
vyjádřit = vyžadovat('vyjádřit');
konst komprese = vyžadovat('komprese');konst app = express();
app.use (compression());
app.get('/api/data', (req, res) => {
// Spravujte svou logiku API
});
Tento fragment kódu používá middleware ke komprimaci odpovědí API, než je vrátí klientovi.
4. Implementujte paralelní zpracování pomocí Promise.all
Paralelní zpracování pomocí Slib.vše metoda je technika používaná ke zlepšení výkonu rozhraní API prováděním více asynchronních úloh současně.
Využitím síly příslibů JavaScriptu vám Promise.all umožňuje provádět sbírku příslibů současně, místo abyste čekali, až se každý příslib vyřeší postupně.
Tato technika je zvláště užitečná, když máte nezávislé úlohy, které lze spouštět současně, jako je vytváření více souvisejících požadavků API na různé koncové body. Paralelním prováděním těchto úloh můžete výrazně zkrátit celkovou dobu provádění a zlepšit odezvu vašeho API.
Zde je jednoduchý příklad kódu demonstrující, jak implementovat paralelní zpracování pomocí Promise.all.
konst vyjádřit = vyžadovat('vyjádřit');
konst axios = vyžadovat('axios');konst app = express();
app.get('/api/data', asynchronní (req, res) => {
Snaž se {
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 [odpověď1, odpověď2, odpověď3] = čekatSlib.Všechno([
požadavek1,
žádost 2,
žádost3
]);
// Zpracujte odpovědi podle potřeby
} chytit (chyba) {
res.status(500.json({ chyba: 'chyba' });
}
});
V tomto příkladu kód odesílá požadavky API na tři různé koncové body. Použitím funkce Promise.all, která předá pole příslibů, kód čeká na jejich dokončení, než vrátí odpovědi v poli.
Když obdržíte všechny odpovědi, můžete je zpracovat podle potřeby. S tímto přístupem byste však měli být opatrní a vyhnout se nadměrnému používání, protože může přetížit server a způsobit úzká hrdla odezvy API.
5. Použijte sdružování databázových připojení
Sdružování databázových připojení je metoda, která zahrnuje vytvoření fondu opakovaně použitelných databázových připojení pro efektivní zpracování více klientských požadavků.
Místo navázání nového připojení pro každý požadavek aplikace znovu použije existující připojení z fondu, což snižuje režii navazování nových připojení, což vede k rychlejšímu a efektivnějšímu dotazování provedení.
Zde je krátký příklad kódu demonstrující, jak používat sdružování databázových připojení Mongoose v aplikaci Express.js.
konst mangusta = vyžadovat('mangusta');
konst { připojení } = vyžadovat('mangusta');konst connectionOptions = {
Velikost bazénu: 10,
useNewUrlParser: skutečný,
useUnifiedTopology: skutečný
};
mongoose.connect('mongodb://localhost/mydatabase', připojeníMožnosti);
V tomto příkladu je vlastnost velikosti fondu připojení nastavena na 10 – to určuje maximální počet připojení ve fondu.
Nastavením této konfigurace může rozhraní API znovu používat připojení, což vede ke zlepšení výkonu rozhraní API snížením režie navazování nových připojení pro každý požadavek.
Upřednostňování výkonu API pro zisk
Existuje několik kroků, kterými můžete optimalizovat výkon svých rozhraní API Express.js. Rozhraní API hrají a klíčovou roli, takže je nezbytné, abyste se zaměřili na jejich výkon, abyste zaručili celkový úspěch svého software.