Skip to content

william-ty/mapadora_api

Repository files navigation

Acrobatt Api

Notes sur le projet

Prérequis : installation d'une base locale postgresql + postGIS

Un utilitaire multi-BDD : https://dbeaver.io/

SETUP FOR JWT:

Initialisation du squelette node Express

npx express-generator --view=pug api npm install cors --save

Installation de sequelize et son support postgresql

https://sequelize.org/v7/manual/getting-started.html npm install --save sequelize npm i --save pg pg-hstore

installation du projet

npm install

modification connexion BDD

copier le fichier 'config/db.config_example.js' en 'config/db.config.js' et éditer les identifiants de bdd

lancement du serveur node

npm run dev (default 'node app.js' remplacé)

  • Au lancement du serveur, node génére les données de la base à partir du schéma (pas de réinitialisation pour le moment de manière à ce que les enregistrements soient conservés.) npm run seed
  • Les données nécessaire au bon fonctionnement de la solution sont générées grâce aux seeders.

Routes CRUD sur points

  • FINDALL /markers/findAll pour voir tous les points en base
  • FINDONE /markers/findOne?id= pour voir un point en particulier
  • POST /markers/create avec un body {description, lat,lng}
  • DELETE /markers/delete avec un body {id : }
  • UPDATE /markers/update avec un body {id + attr to update}

Utilisation de sequelize-cli pour la génération du modèle :

  • Voir la doc ici : https://github.com/sequelize/cli et http://sequelize.org/master/manual/model-basics.html
  • pour générer une entité : npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string
  • remarque : concernant les objets de type "GEOMETRY", il ne faut pas inclure l'attrbut dans la génération et l'ajouter à la main après (pas de gestion native...)
  • héritage de Controller.js pour le CRUD https://github.com/nondefyde/express-controller-inheritance-sample
  • sequelize créé automatiquement deux colonnes createdAt et updatedAt, ainsi qu'une PK id ** dans le cas où on veut modifier la PK par défaut, ajouter dans la méthode init ; id_element: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true // Automatically gets converted to SERIAL for postgres },

Gestion des erreurs

  • 02/04 ajout d'un module de gestion des erreurs dans utils, middelware qui gèrent des erreurs identiques.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages