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

Preview:

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    

anthony.faucogney@millezimu.fr  @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:xxxxx@ds037571.mongolab.com: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":  "anthony.faucogney@millezimu.fr",      "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    

Recommended