YAML-powered · Mock APIs · Python

Des APIs REST
depuis un simple
fichier YAML.

Définis tes modèles dans fasty.yml, lance le serveur.
Fasty génère les données, monte les routes, active la pagination et les liens HATEOAS — sans écrire une seule ligne de Python.

fasty.yml
locale: "en_US" models: users: # → /users, /users/{id} pagination: true hateoas: true fake: _count: 10 first_name: first_name last_name: last_name email: email data: - id: 100 first_name: John email: john.doe@example.com posts: # → /posts, /posts/{id} fake: _count: 5 title: sentence body: text
15 records · 4 routes montées
⚡Zéro code Python
⚡Pagination auto
⚡HATEOAS links
⚡Faker intégré
⚡Data hardcodée
⚡Docker & local
⚡100% Python
⚡Zéro code Python
⚡Pagination auto
⚡HATEOAS links
⚡Faker intégré
⚡Data hardcodée
⚡Docker & local
⚡100% Python
// Comment ça marche

Trois étapes. C'est tout.

Fasty lit ton YAML, génère les données avec Faker, et expose une API REST complète en quelques millisecondes.

01
Crée fasty.yml

Définis tes modèles, le nombre de faux records à générer, et les champs Faker à utiliser. Injecte aussi des données hardcodées si besoin.

fasty.yml
02
Lance le serveur

En local avec python -m fasty ou via Docker. Le serveur parse le YAML, génère les données et monte toutes les routes automatiquement.

local ou Docker
03
Consomme l'API

Chaque modèle expose /model et /model/{id} avec pagination, HATEOAS links et réponses JSON cohérentes.

GET /users
// Configuration

Chaque champ expliqué.

La référence complète des options disponibles dans fasty.yml.

Champ
Description
locale
Locale Faker (ex: "en_US", "fr_FR") pour les données générées
models
Map de modèles. Chaque clé devient automatiquement un endpoint REST
pagination
true/false — Active la pagination par chunks sur le endpoint collection
hateoas
true/false — Injecte des _links dans chaque réponse (self + collection)
fake._count
Nombre de records aléatoires à générer au démarrage du serveur
fake.[field]
Nom d'un générateur Faker : first_name, email, text, sentence, word…
data
Liste d'objets hardcodés injectés en plus des données générées
fasty.yml — exemple complet
locale: "fr_FR" models: users: pagination: true hateoas: true fake: _count: 10 first_name: first_name last_name: last_name email: email data: - id: 100 first_name: John last_name: Doe email: john.doe@example.com posts: pagination: false hateoas: true fake: _count: 5 title: sentence body: text products: fake: _count: 20 name: word price: pricetag description: sentence
// Endpoints générés

Routes auto-montées.

Pour chaque modèle déclaré dans fasty.yml, Fasty monte ces routes automatiquement.

GET
/{model}
Retourne la collection complète. Avec pagination si activée, et _links HATEOAS si activé.
ex: /users
GET
/{model}/{id}
Retourne un record unique par ID. Inclut _links.self et _links.collection.
ex: /users/3
GET
/{model}?page=N
Pagination activable par query param. Retourne un chunk + métadonnées de page.
si pagination: true
GET
_links dans chaque réponse
Quand HATEOAS est activé, chaque objet embarque _links.self et _links.collection.
si hateoas: true
// Démarrage

Prêt en 30 secondes.

Cloner le repo, créer ton fichier YAML, lancer en local ou via Docker.

$ git clone https://github.com/dandyArise/fasty
$ cd fasty
$ pip install -r requirements.txt
$ python -m fasty # → http://localhost:8000
$ git clone https://github.com/dandyArise/fasty
$ cd fasty
$ docker build -t fasty .
$ docker run -p 8000:8000 -v $(pwd)/fasty.yml:/app/fasty.yml fasty
Voir sur GitHub ↗ Ouvrir une issue