Voici mon API personnelle, disponible sur le domaine api.sylvain.sh. L'API est développée avec TypeScript et Node.js, et hébergée 24h/7j. Elle est simple d'utilisation et a une documentation disponible sur docs.sylvain.sh !
Une limite de 2000 requêtes par heure est fixée. Elle change pour certains endpoints nécessitant plus de ressources. Si vous souhaitez une augmentation de cette limite, n'hésitez pas à visiter la documentation.
- Node.js >= 22.0.0
$ sudo apt install nodejs npm
$ npm install @20syldev/api
$ npm initAttention, vous devez configurer le type sur "module" dans votre fichier
package.json.
Pour démarrer un serveur local avec tous les endpoints :
$ npm run build && npm start> @20syldev/api@5.3.0 build
> tsc
> @20syldev/api@5.3.0 start
> node dist/app.js
API is running on
- http://127.0.0.1:3000
- http://localhost:3000Pour le développement avec rechargement automatique :
$ npm run devVous pouvez également importer les modules spécifiques dont vous avez besoin :
// Importer des modules spécifiques depuis la v5
import { evaluate, color, username } from '@20syldev/api/v5';
// Évaluer une expression mathématique
const expr = evaluate('sin(pi / 2) + sqrt(4)', 5);
console.log(expr.result); // 3
console.log(expr.expression); // "sin(pi / 2) + sqrt(4)"
// Générer une couleur aléatoire
const couleur = color();
console.log(`Couleur HEX: ${couleur.hex}`);
console.log(`Couleur RGB: ${couleur.rgb}`);
// Générer un nom d'utilisateur aléatoire
const utilisateur = username();
console.log(`Nom d'utilisateur: ${utilisateur.username}`);| Commande | Description |
|---|---|
npm run dev |
Serveur de développement avec rechargement automatique (tsx watch) |
npm run build |
Compilation TypeScript vers dist/ |
npm start |
Démarrer le serveur de production (node dist/app.js) |
npm test |
Lancer les tests unitaires et d'intégration |
npm run lint |
Vérification ESLint |
npm run format |
Formatage avec Prettier |
npm run check |
Vérification TypeScript + ESLint |
import { asymmetric, chart, evaluate, matrix, otp, symmetric } from '@20syldev/api/v5';
// Chiffrement RSA asymétrique
const { publicKey, privateKey } = asymmetric('keygen', {});
const { result: encrypted } = asymmetric('encrypt', { text: 'message secret', publicKey });
const { result: decrypted } = asymmetric('decrypt', { text: encrypted, privateKey });
console.log(decrypted); // 'message secret'
// Évaluer une expression mathématique
const { result } = evaluate('log2(8) * (3 + pi)', 4);
console.log(result); // 18.4248
// Opération matricielle — produit de deux matrices
const { result: product } = matrix.multiply([[1, 2], [3, 4]], [[5, 6], [7, 8]]);
console.log(product); // [[19, 22], [43, 50]]
// Générer un graphique SVG en mémoire
const { body: svg } = chart.bar(
{ labels: ['Jan', 'Fév', 'Mar'], datasets: [{ label: 'Ventes', values: [120, 85, 200] }] },
{ width: 600, height: 300 },
);
// body contient une chaîne SVG prête à l'emploi
// Chiffrement symétrique AES-256-GCM
const { result: blob } = symmetric('encrypt', 'message secret', 'motdepasse');
const { result: plain } = symmetric('decrypt', blob, 'motdepasse');
console.log(plain); // 'message secret'
// Générer un secret TOTP et vérifier un code
const { secret } = otp('secret', {});
const { code } = otp('generate', { secret });
const { valid } = otp('verify', { secret, code });
console.log(valid); // trueVisitez la documentation dédiée pour la liste complète des endpoints, des exemples de requêtes et des guides d'utilisation de l'API.