Skip to content

Développement API - Pierre Blarre

API serveurs - tierces

Icône Présentation
1 / 1

Node.js offre de nombreuses fonctionnalités natives pour créer des applications.

Cependant, il est possible d’utiliser des API ou des frameworks tierces pour étendre les fonctionnalités de Node.js.

Dans cette optique, on a à disposition de nombreux paquets npm d’une part et des frameworks d’autres part.

Paquets npm popuplaires

Frameworks Javascript populaires

Quelques frameworks Javascript parmis les plus connus : React, Vue, Angular, Express, NestJS, Svelte, Next.js, Nuxt.js, etc.

Et d’autres frameworks très prometteurs : Astro, Hono, Solid, Vite, Snowpack, Blitz, Redwood, etc.

Exemples d’API tierces

Express (serveur web)

Express est un framework web minimaliste et flexible pour Node.js, qui fournit un ensemble robuste de fonctionnalités pour les applications web et mobiles.

N’étant pas intégré à Node.js par défaut, il faut l’installer via npm dans un projet Node.js.

Pour initialiser un projet Node.js, on peut utiliser la commande suivante :

npm init -y

Pour installer Express, on peut utiliser la commande suivante :

npm install express

Exemple d’utilisation d’Express :

express-test.js
// Importation du module express
import express from 'express';
// Création d'une application express
const app = express();
// Définition de la route racine
app.get('/', (req, res) => {
res.send('Hello, World!');
});
// Démarrage du serveur sur le port 3000
app.listen(3000, () => {
console.log('Server started on http://localhost:3000');
});

Pour lancer le serveur Express, on peut utiliser la commande suivante :

node express-test.js
> Server started on http://localhost:3000
Express

Ce simple exemple est le début d’une application web avec Express qui peut être étendue pour créer des API RESTful.

Même si ce code ressemble fortement à l’API native http de Node.js, Express offre des fonctionnalités supplémentaires qui facilitent la création d’applications web.

Mongoose (base de données)

Mongoose est une bibliothèque ODM (Object Data Modeling) pour MongoDB et Node.js, qui fournit une solution simple et efficace pour gérer les données de MongoDB.

Pour installer Mongoose, on peut utiliser la commande suivante :

npm install mongoose

Exemple d’utilisation de Mongoose :

mongoose-test.js
// Exemple d'utilisation de Mongoose
const mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/test');
const Cat = mongoose.model('Cat', { name: String });
const kitty = new Cat({ name: 'Zildjian' });
kitty.save().then(() => console.log('meow'));

Drizzle ORM

Drizzle ORM est une bibliothèque ORM (Object Relationnal Mapping) pour Node.js qui permet d’interagir avec des bases de données relationnelles comme Postgres, MySQL, SQLite, etc.

  1. Installation
npm i drizzle-orm @libsql/client dotenv
npm i -D drizzle-kit tsx

Drizzle utilise TypeScript pour la définition des modèles de données et des requêtes SQL.

Il permet de créer des modèles de données, de définir des relations entre ces modèles, de créer des requêtes SQL et de les exécuter, sans jamais écrire de SQL.

Il utilise DOTENV pour la gestion des variables d’environnement.

Exemple d’utilisation de Drizzle ORM :

  1. Définition des variables d’environnement :
.env
DB_FILE_NAME=file:local.db
  1. Connection à la base de données :
index.ts
import 'dotenv/config';
import { drizzle } from 'drizzle-orm/libsql';
const db = drizzle(process.env.DB_FILE_NAME!);
  1. Création d’un schéma de données :
schema.ts
// Create a new table
import { int, sqliteTable, text } from "drizzle-orm/sqlite-core";
export const usersTable = sqliteTable("users_table", {
id: int().primaryKey({ autoIncrement: true }),
name: text().notNull(),
age: int().notNull(),
email: text().notNull().unique(),
});
  1. Configuration de Drizzle :
drizzle-config.ts
import 'dotenv/config';
import { defineConfig } from 'drizzle-kit';
export default defineConfig({
out: './drizzle',
schema: './src/db/schema.ts',
dialect: 'sqlite',
dbCredentials: {
url: process.env.DB_FILE_NAME!,
},
});
  1. Application des modifications à la base de données :
npx drizzle-kit generate
npx drizzle-kit migrate

etc.

Conclusion

  • On peut voir dans ce dernier exemple que Drizzle semble plus complexe à mettre en place que les autres API tierces vu précédemment.
  • Evidemment, plus une API tierce offre des fonctionnalités avancées, plus elle reisque d’être difficile à configurer et prendre en main.
  • Il en sera de même pour les frameworks Javascript, qui offrent des fonctionnalités avancées mais qui ont des courbes d’apprentissage plus ou moins longues.

Il est recommandé pour les débutants de commencer par des API simples et de se familiariser avec les concepts de base avant de passer à des API plus complexes.