23
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

Créer, Pousser et Lancer un serveur RESTful en 10 min

Embed Size (px)

Citation preview

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  

NodeJS  

MilleZimU  

MongoDB  

MilleZimU  

LoopBack  

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  

Loopback  Explorer  

MilleZimU  

Loopback  Explorer  

§  Jouer/Tester  son  API  §  npm  i    -­‐-­‐save  loopback-­‐explorer  

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  Talker  

{    "email":  "[email protected]",      "password":"human"  }  

MilleZimU  

Ajout  d’un  Talk  

{      "name":  "RESTMD10",      "date":  "2015-­‐02-­‐27",      "abstract":  "Blabla",      "talkerId":  “….."  }  

MilleZimU  

RécupéraRon  des  Talks  d’un  Talker  –  Protégé  par  les  droits  

MilleZimU  

Heroku  

MilleZimU  

MongoLab  

MilleZimU  

Les  Sources  

§  NodeJS  htps://nodejs.org/    §  LoopBack  htp://loopback.io/    § MongoDB  htp://www.mongodb.org/    § MongoLab  htps://mongolab.com/    §  Heroku  htps://www.heroku.com/home