Skip to content

Backend : vue d'ensemble ​

L'API est le cœur de TimeManager : le site web et l'application mobile n'ont aucune règle à eux, ils lui demandent tout. C'est elle qui décide qui peut pointer, qui voit les heures de qui, ce qu'une semaine validée bloque, et qui garde l'historique de chaque modification.

En bref ​

SujetDétail
Dossiertimemanager-api/
LangageElixir 1.17 sur Erlang/OTP 26
FrameworkPhoenix 1.8 (API JSON, sans pages HTML)
Base de donnéesPostgreSQL 17, via Ecto
E-mailsSwoosh, envoyés par Brevo en production
Documentation interactive/api/docs (Swagger)
Adresseapi.time.jostud.com/api
Clientsle site web (cookies) et l'application mobile (jeton Bearer)
Testsenviron 460, lancés par Jenkins avant chaque déploiement

Ce que fait l'API ​

Les deux moitiés du code ​

Le code est coupé en deux, et c'est la première chose à comprendre :

  • timemanager/, le métier. Les règles : pointer, valider une semaine, accepter une correction. Ce code ne sait rien d'HTTP, de JSON ni des cookies.
  • timemanager_web/, le web. Il reçoit une requête HTTP, vérifie qui appelle et ce qu'il a le droit de faire, appelle le métier, puis répond en JSON.

Le métier sert donc aussi sans passer par HTTP : les données de démonstration et les tests l'appellent directement. Et une règle n'est écrite qu'une seule fois.

Par où commencer ​

Je veux…Lire
comprendre Elixir, Phoenix et EctoLes bases à connaître
lancer l'API sur mon posteLancer le projet
savoir où est quoiOrganisation des dossiers
suivre une requête de bout en boutLe trajet d'une requête
connaître les tablesBase de données
essayer les routesla page Swagger : /api/docs

Le principe qui revient partout

L'API ne fait confiance à personne. Le site web et l'application vérifient déjà beaucoup de choses pour le confort de l'utilisateur, mais toute règle est aussi vérifiée par l'API, puis souvent une dernière fois par une contrainte de la base de données. Un client modifié ou un appel direct avec curl ne peut contourner aucune règle.