MilleZimU
MilleZimU
Créer, Pousser, Lancer un Serveur RESTful
Le temps d’un Human Talk LAVAL, le 10 Mars 2015
Anthony FAUCOGNEY
Fondateur Startup MilleZimU
[email protected] @afaucogney
MilleZimU
Prérequis
§ InstallaRon de la toolbox § GIT § CLI Heroku § StrongLoop § CLI Mongo (OpRonnel)
§ Compte § Heroku § MongoLab (base mongo créée)
MilleZimU
Contenu
§ Un serveur RESTFul § NodeJS § 100% RESTful § Hébergé sur Heroku § Avec une base MongoDB sur MongoLab § De l’authenRficaRon (donc des droits d'accès) § Un Modèle
§ Talk § Talker § Des RelaRons entre modèles
§ Une interface de test pour l’API
MilleZimU
Loopback.io
§ CréaRon de l'App § slc loopback
§ Une App § slc loopback:model
§ Un modèle § Talk
§ Des propriétés § Name (R) § Date (R) § Abstract (R)
MilleZimU
On ajoute un Model
§ Talker dérivé de User § slc loopback:model
§ Un modèle § Talker
§ Pas de propriété supplémentaire § Idem User
MilleZimU
On gére les Droits
§ Pour Talkers § slc loopback:acl
§ Droit en Lecture § Tout URlisateur AuthenRfié
§ Pour User § model-‐config.js
§ Private sur l’API REST
MilleZimU
§ On installe un connecteur MongoDB : § npm i -‐-‐save loopback-‐connector-‐mongodb
§ On créer un dataSource : § slc loopback:datasource
§ On le configure : "humantalk": { "name": "humantalk", "url": "mongodb://anthony:[email protected]:37571/humantalk", "connector": "mongodb" }
MongoDB, mare de...
MilleZimU
Connexion des modèles a MongoDB
model-‐config.js
"Talk": { "dataSource": "humantalk", "public": true }, "Talker": { "dataSource": "humantalk", "public": true }
MilleZimU
On ajoute une RelaRon
§ slc loopback:relaRon
Talkers HasMany Talks model-‐config.js
"talks": { "type": "hasMany", "model": "Talk", "foreignKey": "talkerId" }
MilleZimU
Do You Git ?
§ git init
§ git add .
§ git rm –r node_modules
§ git commit –am”ca y est, on commence”
MilleZimU
Un Heroku Dyno à la Volée !!!
§ On se logue § heroku login
§ CréaRon d’un App § heroku create humantalklaval
§ On pousse fort ! § git push heroku master
§ On ajoute une unité de calcul : dyno § heroku ps § heroku ps:scale web=1
MilleZimU
Un Procfile pour lancer le fichier
§ Procfile § web: node ./server/server
§ git add Procfile § git commit –am “add procfile” § git push heroku master § heroku open
MilleZimU
Ajout d’un Talk
{ "name": "RESTMD10", "date": "2015-‐02-‐27", "abstract": "Blabla", "talkerId": “….." }