{"id":22643132,"url":"https://github.com/tonylapoche/template-api-rest-nodejs","last_synced_at":"2026-04-27T21:31:46.827Z","repository":{"id":222671941,"uuid":"757982651","full_name":"TonyLaPoche/template-api-rest-nodejs","owner":"TonyLaPoche","description":"Base d'une API REST, avec un crud complet. Entité basé sur la génération d'exemple (un exemple étant un objet basique comportant un nom et une description)","archived":false,"fork":false,"pushed_at":"2024-02-21T11:38:16.000Z","size":128,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T05:43:47.583Z","etag":null,"topics":["api","from-scratch","initiation","node","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TonyLaPoche.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-15T11:45:08.000Z","updated_at":"2024-11-13T16:37:07.000Z","dependencies_parsed_at":"2024-02-20T12:46:56.959Z","dependency_job_id":"a7d4be98-3918-496c-842c-4f6ca44f5384","html_url":"https://github.com/TonyLaPoche/template-api-rest-nodejs","commit_stats":null,"previous_names":["tonylapoche/api-rest-nodejs","tonylapoche/template-api-rest-nodejs"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyLaPoche%2Ftemplate-api-rest-nodejs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyLaPoche%2Ftemplate-api-rest-nodejs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyLaPoche%2Ftemplate-api-rest-nodejs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyLaPoche%2Ftemplate-api-rest-nodejs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TonyLaPoche","download_url":"https://codeload.github.com/TonyLaPoche/template-api-rest-nodejs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246145013,"owners_count":20730493,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","from-scratch","initiation","node","typescript"],"created_at":"2024-12-09T05:09:25.631Z","updated_at":"2026-04-27T21:31:46.799Z","avatar_url":"https://github.com/TonyLaPoche.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Exemple API REST\n\n---\n\n![https://forthebadge.com](https://forthebadge.com/images/badges/powered-by-coffee.svg)\n\nUne API REST simple pour gérer des exemples d'entités avec un CRUD complet, construite avec Node.js, Express, MongoDB et TypeScript.\n\n## L'entité\n\nL'entité générable/manipulable sur cette api est un simple objet contenant 2 clés (name, description).\n\n### Schéma (exemple)\n\n- name : `string (min: 3 \u0026 max: 30 length)`, `non nullable`, `obligatoire`\n- description : `string (max: 300 length)`, `nullable`,  `facultatif`\n\n```json\n    {\n        \"name\":\"Nom d'un exemple\",\n        \"description\": \"Description, lorem ipsum dolor sit amet...\"\n    }\n```\n\n## Fonctionnalités\n\n- Création d'un exemple (**POST**)\n- Récupération de tous les exemples (**GET**)\n- Récupération d'un exemple par son ID (**GET**)\n- Mise à jour d'un exemple par son ID (**PATCH**)\n- Suppression d'un exemple par son ID (**DELETE**)\n- Suppression de la liste complète des exemples (purge) (**DELETE**)\n\n## Prérequis\n\nAvant de commencer, assurez-vous d'avoir installé :\n\n- Node.js (version 12.x ou supérieur)\n- npm (inclus avec Node.js) | yarn\n- MongoDB (local ou distant)\n\n## Installation\n\nClonez ce dépôt sur votre machine locale :\n\n```bash\n    git clone https://votreDepot.git\n    cd votreProjet\n```\n\nInstallez les dépendances du projet :\n\n```bash\n    yarn install\n```\n\nou\n\n```bash\n    npm install\n```\n\n## Configurez les variables d'environnement\n\nCréez un fichier .env à la racine du projet et ajoutez les configurations nécessaires :\n\n```bash\n    PORT=3000\n    MONGODB_URI=votre_chaine_de_connexion_mongodb\n```\n\n## Démarrage de l'API\n\nPour lancer l'API en mode développement, exécutez :\n\n```bash\n    yarn dev\n```\n\n```bash\n    npm run dev\n```\n\nPour construire et exécuter en production :\n\n```bash\n    yarn build\n    yarn start\n```\n\n## Utilisation\n\nVoici comment consommer l'API :\n\n*à titre personnel j'ai effectués mes essaies via le logiciel **POSTMAN**.  \nLes exemples ci-dessous font référence à un traitement en local avec le port 3000. `localhost:3000/[ENDPOINT]`*\n\n- Retrouver la liste des Endpoints dans le fichier `src/routes/index.ts`\n\n### Créer un exemple\n\n```bash\n    POST /examples\n    {\n    \"name\": \"Nom de l'exemple\",\n    \"description\": \"Description de l'exemple\"\n    }\n```\n\n### Récupérer tous les exemples\n\n```bash\n    GET /examples\n```\n\n### Récupérer un exemple par ID\n\n```bash\n    GET /examples/:id\n```\n\n### Mettre à jour un exemple par ID\n\n```bash\n    PATCH /examples/:id\n    {\n    \"name\": \"Nouveau nom\",\n    \"description\": \"Nouvelle description\"\n    }\n```\n\n### Supprimer un exemple par ID\n\n```bash\n    DELETE /examples/:id\n```\n\n### Contribution\n\nLes contributions sont les bienvenues ! Pour contribuer, veuillez forker le dépôt, créer une branche pour votre fonctionnalité ou correction, puis soumettre une pull request.\n\n![https://forthebadge.com](https://forthebadge.com/images/badges/not-a-bug-a-feature.svg)\n\n### Licence\n\nCe projet est sous licence MIT. Voir le fichier `LICENSE` pour plus de détails.\n\n![https://forthebadge.com](https://forthebadge.com/images/badges/powered-by-electricity.svg)\n![https://forthebadge.com](https://forthebadge.com/images/badges/built-by-developers.svg)\n![https://forthebadge.com](https://forthebadge.com/images/badges/made-with-typescript.svg)\n\n\n#### mot de la fin | remerciement\n\nJe suis extrêmement reconnaissant envers mes mentors, qui m'ont soutenu et qui ont eu un regard critique et constructif sur mon travail. Ces personnes sont une véritable source d'inspiration et de motivation pour mon travail en tant que développeur.\n\n- Alex : https://www.linkedin.com/in/alexandre-caldato/\n- Cyril : https://www.linkedin.com/in/cchapon/\n- Cindy : https://www.linkedin.com/in/cindy-bajoni/\n- Alann : https://www.linkedin.com/in/alann-sapone/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonylapoche%2Ftemplate-api-rest-nodejs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftonylapoche%2Ftemplate-api-rest-nodejs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonylapoche%2Ftemplate-api-rest-nodejs/lists"}