Skip to content

Référence de l'API REST

Endpoints fournis par l'application exemple nene2-python.

Schéma lisible par machine : exécutez uv run python src/scripts/export_openapi.py pour générer docs/openapi.yaml.
Documentation interactive : démarrez le serveur de développement et ouvrez http://localhost:8080/docs.


Notes

GET /notes

Lister les notes avec pagination.

Paramètres de requête

ParamètreTypeDéfautDescription
limitint20Résultats maximum (max 100)
offsetint0Nombre de résultats à ignorer

Réponse 200 OK

json
{
  "items": [{"id": 1, "title": "Ma note", "body": "Contenu"}],
  "limit": 20,
  "offset": 0,
  "total": 1
}

POST /notes

Créer une note.

Corps de la requête

json
{"title": "Titre", "body": "Texte du corps"}

Réponse 201 Created

json
{"id": 1, "title": "Titre", "body": "Texte du corps"}

GET /notes/{note_id}

Obtenir une seule note. Retourne 404 si non trouvée.

PUT /notes/{note_id}

Modifier une note.

Corps de la requête

json
{"title": "Nouveau titre", "body": "Nouveau corps"}

Réponse 200 OK / 404 Not Found

DELETE /notes/{note_id}

Supprimer une note. Retourne 204 No Content / 404 Not Found.


Tags

/tags suit le même schéma CRUD que les Notes.

MéthodeCheminDescription
GET/tagsLister les tags
POST/tagsCréer un tag ({"name": "..."})
GET/tags/{tag_id}Obtenir un tag
PUT/tags/{tag_id}Modifier un tag ({"name": "..."})
DELETE/tags/{tag_id}Supprimer un tag

Commentaires

Les commentaires sont imbriqués sous une Note.

MéthodeCheminDescription
GET/notes/{note_id}/commentsLister les commentaires
POST/notes/{note_id}/commentsCréer un commentaire ({"body": "..."})
GET/notes/{note_id}/comments/{comment_id}Obtenir un commentaire
PUT/notes/{note_id}/comments/{comment_id}Modifier un commentaire
DELETE/notes/{note_id}/comments/{comment_id}Supprimer un commentaire

Santé

GET /health

Retourne l'état de santé de l'application.

Réponse 200 OK

json
{"status": "ok", "db": "ok"}

db vaut "error" quand la connexion à la base de données échoue.


Réponses d'erreur

Toutes les erreurs utilisent le format RFC 9457 Problem Details.

json
{
  "type": "https://nene2.dev/problems/not-found",
  "title": "Not Found",
  "status": 404,
  "detail": "Note with ID 42 was not found."
}
StatuttypeCause
400bad-requestRequête malformée
401unauthorizedÉchec d'authentification
404not-foundLa ressource n'existe pas
413payload-too-largeCorps dépasse la limite de taille
422validation-failedErreur de validation des entrées
429too-many-requestsLimite de débit dépassée
500internal-server-errorErreur serveur non gérée

Publié sous la licence MIT.