# E-CARE API CLEANING

### Processus de création d'une route -&gt; controller -&gt; service 

[![image.png](https://documentation.aswpro.com/uploads/images/gallery/2026-04/scaled-1680-/ws15qxu7BOFMBOmL-image.png)](https://documentation.aswpro.com/uploads/images/gallery/2026-04/ws15qxu7BOFMBOmL-image.png)

### 1)Créer le controller

[![image.png](https://documentation.aswpro.com/uploads/images/gallery/2026-04/scaled-1680-/MLvtHCzHRt3IswD6-image.png)](https://documentation.aswpro.com/uploads/images/gallery/2026-04/MLvtHCzHRt3IswD6-image.png)

un controller contient tout ce qui est en rapport avec les requetes/responses, c'est ici qu'on fait le try catch et qu'on renseigne par exemple le pool ( db ) etc .

on oublie pas de le rendre exportable avec le "export" const , et ensuite on crée nos methodes.

On peut le faire de plusieurs façons comme vu ici

[![image.png](https://documentation.aswpro.com/uploads/images/gallery/2026-04/scaled-1680-/hDw0XMdTJrlIYDGy-image.png)](https://documentation.aswpro.com/uploads/images/gallery/2026-04/hDw0XMdTJrlIYDGy-image.png)

trois méthodes differentes qui font la meme chose , question de préference.

donc dans le controller on appelle le service clientService.\[la methode qu'on veut\] (\[le parametre que la methode attends\]).

[![image.png](https://documentation.aswpro.com/uploads/images/gallery/2026-04/scaled-1680-/WWSzz45nszntEkaL-image.png)](https://documentation.aswpro.com/uploads/images/gallery/2026-04/WWSzz45nszntEkaL-image.png)

### 2)Créer le service

[![image.png](https://documentation.aswpro.com/uploads/images/gallery/2026-04/scaled-1680-/ImC7y2kGJYabKpaa-image.png)](https://documentation.aswpro.com/uploads/images/gallery/2026-04/ImC7y2kGJYabKpaa-image.png)

dans le service on met tout ce qui est appel en db, et on retourne le resultat, le controller ce charge de la gestion d'erreur etc .

On fait toujours comme ca :

[![image.png](https://documentation.aswpro.com/uploads/images/gallery/2026-04/scaled-1680-/OkpsJuifMtbz22zl-image.png)](https://documentation.aswpro.com/uploads/images/gallery/2026-04/OkpsJuifMtbz22zl-image.png)

const \[nom \] = await (pour l'asynchrone) pool(parametre qu'on a typé).request().query(`\[notre requete\]`);

et on return le resultat

[![image.png](https://documentation.aswpro.com/uploads/images/gallery/2026-04/scaled-1680-/hNuhPmxBcIojDyWG-image.png)](https://documentation.aswpro.com/uploads/images/gallery/2026-04/hNuhPmxBcIojDyWG-image.png)

### 3)Créer la route

dans src/router/config.routes.ts on peut voir un tableau de routes, on duplique une des lignes et on change les valeurs par la route qu'on veut , url = \[route de base\], handler = \[le router qui va gerer les routes\]

[![image.png](https://documentation.aswpro.com/uploads/images/gallery/2026-04/scaled-1680-/Yn5IcByxazkt0Oz5-image.png)](https://documentation.aswpro.com/uploads/images/gallery/2026-04/Yn5IcByxazkt0Oz5-image.png)

ensuite dans router/handlers on crée un handler, \[le nom qu'on veut\].handler.ts

[![image.png](https://documentation.aswpro.com/uploads/images/gallery/2026-04/scaled-1680-/G0WwXeVKZIoFi4Fe-image.png)](https://documentation.aswpro.com/uploads/images/gallery/2026-04/G0WwXeVKZIoFi4Fe-image.png)

[![image.png](https://documentation.aswpro.com/uploads/images/gallery/2026-04/scaled-1680-/7OnwMSaqXXSJ9eSG-image.png)](https://documentation.aswpro.com/uploads/images/gallery/2026-04/7OnwMSaqXXSJ9eSG-image.png)

Dans ce handler, on crée notre export const \[nom du handler\] = Router() (crée une instance du router d'express.JS)

puis on appelle ce router fraichement crée pour lui definir ses endpoints , ici on voit .get , ca crée donc la route /api/clients/ , en method GET , qui executera le code du controller qu'on mettra en second parametre ( ici clientController.all )

avec tout ca , on a crée notre route d'api /api/clients qui execute la methode all du controller .

Pour tester on peut soit faire la route 'http://localhost:8000/api/clients' en get sur postman , ou simplement aller sur une page internet et mettre cette url dans la barre de recherche.