SlideShare a Scribd company logo
1 of 23
Download to read offline
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	
  	
  

More Related Content

What's hot

Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB13p
 
Démarrer la création de blocs
Démarrer la création de blocsDémarrer la création de blocs
Démarrer la création de blocsBenoît Chantre
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Guillaume Sautereau
 
NodeJS for Mobile App
NodeJS for Mobile AppNodeJS for Mobile App
NodeJS for Mobile AppHabib MAALEM
 
YLT paris js - mars 2015
YLT paris js - mars 2015YLT paris js - mars 2015
YLT paris js - mars 2015gaelmetais
 
Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.wplyon
 
64 conneries que font les référenceurs avec WordPress
64 conneries que font les référenceurs avec WordPress64 conneries que font les référenceurs avec WordPress
64 conneries que font les référenceurs avec WordPressAurélien Denis
 
Migration de données… Destination WordPress !
Migration de données… Destination WordPress !Migration de données… Destination WordPress !
Migration de données… Destination WordPress !Willy Bahuaud
 
Wordcamp paris-2016 : Comment fonctionnent le projet et la communauté open so...
Wordcamp paris-2016 : Comment fonctionnent le projet et la communauté open so...Wordcamp paris-2016 : Comment fonctionnent le projet et la communauté open so...
Wordcamp paris-2016 : Comment fonctionnent le projet et la communauté open so...Chipway
 
Wordcamp paris 2015 dev-pragmatique-bonnes-pratiques
Wordcamp paris 2015  dev-pragmatique-bonnes-pratiquesWordcamp paris 2015  dev-pragmatique-bonnes-pratiques
Wordcamp paris 2015 dev-pragmatique-bonnes-pratiquesSylvie Clément
 
Rapport DVWA: CSRF
Rapport DVWA: CSRFRapport DVWA: CSRF
Rapport DVWA: CSRFAyoub Rouzi
 
Magento et SEO : le combo parfait pour développer son e-commerce
Magento et SEO : le combo parfait pour développer son e-commerceMagento et SEO : le combo parfait pour développer son e-commerce
Magento et SEO : le combo parfait pour développer son e-commercePatrick Valibus
 
Comment se charge WordPress ? Le loading du core.
Comment se charge WordPress ? Le loading du core.Comment se charge WordPress ? Le loading du core.
Comment se charge WordPress ? Le loading du core.Boiteaweb
 
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...Clément OUDOT
 
RMLL 2014 - Site statique avec Templer, Bootstrap et Git
RMLL 2014 - Site statique avec Templer, Bootstrap et GitRMLL 2014 - Site statique avec Templer, Bootstrap et Git
RMLL 2014 - Site statique avec Templer, Bootstrap et GitClément OUDOT
 
Comment réussir une migration de site web en seo ?
Comment réussir une migration de site web en seo ?Comment réussir une migration de site web en seo ?
Comment réussir une migration de site web en seo ?Patrick Valibus
 
Démarrer sous Chromebook aux power users
Démarrer sous Chromebook aux power usersDémarrer sous Chromebook aux power users
Démarrer sous Chromebook aux power usersAnthony Le Goff
 
Wordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsWordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsBoiteaweb
 

What's hot (20)

Pirates des CMS
Pirates des CMSPirates des CMS
Pirates des CMS
 
Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB
 
Démarrer la création de blocs
Démarrer la création de blocsDémarrer la création de blocs
Démarrer la création de blocs
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010
 
NodeJS for Mobile App
NodeJS for Mobile AppNodeJS for Mobile App
NodeJS for Mobile App
 
YLT paris js - mars 2015
YLT paris js - mars 2015YLT paris js - mars 2015
YLT paris js - mars 2015
 
Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
 
64 conneries que font les référenceurs avec WordPress
64 conneries que font les référenceurs avec WordPress64 conneries que font les référenceurs avec WordPress
64 conneries que font les référenceurs avec WordPress
 
Migration de données… Destination WordPress !
Migration de données… Destination WordPress !Migration de données… Destination WordPress !
Migration de données… Destination WordPress !
 
Wordcamp paris-2016 : Comment fonctionnent le projet et la communauté open so...
Wordcamp paris-2016 : Comment fonctionnent le projet et la communauté open so...Wordcamp paris-2016 : Comment fonctionnent le projet et la communauté open so...
Wordcamp paris-2016 : Comment fonctionnent le projet et la communauté open so...
 
Wordcamp paris 2015 dev-pragmatique-bonnes-pratiques
Wordcamp paris 2015  dev-pragmatique-bonnes-pratiquesWordcamp paris 2015  dev-pragmatique-bonnes-pratiques
Wordcamp paris 2015 dev-pragmatique-bonnes-pratiques
 
Rapport DVWA: CSRF
Rapport DVWA: CSRFRapport DVWA: CSRF
Rapport DVWA: CSRF
 
Navigateurs alternatifs de Comodo
Navigateurs alternatifs de ComodoNavigateurs alternatifs de Comodo
Navigateurs alternatifs de Comodo
 
Magento et SEO : le combo parfait pour développer son e-commerce
Magento et SEO : le combo parfait pour développer son e-commerceMagento et SEO : le combo parfait pour développer son e-commerce
Magento et SEO : le combo parfait pour développer son e-commerce
 
Comment se charge WordPress ? Le loading du core.
Comment se charge WordPress ? Le loading du core.Comment se charge WordPress ? Le loading du core.
Comment se charge WordPress ? Le loading du core.
 
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
 
RMLL 2014 - Site statique avec Templer, Bootstrap et Git
RMLL 2014 - Site statique avec Templer, Bootstrap et GitRMLL 2014 - Site statique avec Templer, Bootstrap et Git
RMLL 2014 - Site statique avec Templer, Bootstrap et Git
 
Comment réussir une migration de site web en seo ?
Comment réussir une migration de site web en seo ?Comment réussir une migration de site web en seo ?
Comment réussir une migration de site web en seo ?
 
Démarrer sous Chromebook aux power users
Démarrer sous Chromebook aux power usersDémarrer sous Chromebook aux power users
Démarrer sous Chromebook aux power users
 
Wordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsWordpress et la sécurité des plugins
Wordpress et la sécurité des plugins
 

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

Meetup python-bottle-telosys-2018-lgu-v1.0
Meetup python-bottle-telosys-2018-lgu-v1.0Meetup python-bottle-telosys-2018-lgu-v1.0
Meetup python-bottle-telosys-2018-lgu-v1.0Laurent Guérin
 
Tout ce que le getting started mongo db ne vous dira pas
Tout ce que le getting started mongo db ne vous dira pasTout ce que le getting started mongo db ne vous dira pas
Tout ce que le getting started mongo db ne vous dira pasPierre-Alban DEWITTE
 
Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasTout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasBruno Bonnin
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...ENSIBS
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSRenaud Dumont
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab ElasticsearchDavid Pilato
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de phpGautier DUMAS
 
Grails from scratch to prod - MixIT 2011
Grails from scratch to prod - MixIT 2011Grails from scratch to prod - MixIT 2011
Grails from scratch to prod - MixIT 2011Aurélien Maury
 
Orchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesOrchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesXavier Gorse
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascriptcodedarmor
 
Introduction au développement Web
Introduction au développement Web Introduction au développement Web
Introduction au développement Web Romain Willmann
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8davrous
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebFrédéric Harper
 
Recruter et travailler avec un développeur
Recruter et travailler avec un développeurRecruter et travailler avec un développeur
Recruter et travailler avec un développeurCamille Roux
 
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...Peak Ace
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Laurent Guérin
 
A la Découverte des chatbots avec DialogFlow
A la Découverte des chatbots avec DialogFlowA la Découverte des chatbots avec DialogFlow
A la Découverte des chatbots avec DialogFlowGérôme Grignon
 
Stage de fin d’études – dotcloud
Stage de fin d’études – dotcloudStage de fin d’études – dotcloud
Stage de fin d’études – dotcloudJoffrey Fu Hrer
 
Stage de fin d’études – dotcloud
Stage de fin d’études – dotcloudStage de fin d’études – dotcloud
Stage de fin d’études – dotcloudJoffrey Fu Hrer
 

Similar to Créer, Pousser et Lancer un serveur RESTful en 10 min. (20)

Meetup python-bottle-telosys-2018-lgu-v1.0
Meetup python-bottle-telosys-2018-lgu-v1.0Meetup python-bottle-telosys-2018-lgu-v1.0
Meetup python-bottle-telosys-2018-lgu-v1.0
 
Tout ce que le getting started mongo db ne vous dira pas
Tout ce que le getting started mongo db ne vous dira pasTout ce que le getting started mongo db ne vous dira pas
Tout ce que le getting started mongo db ne vous dira pas
 
Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasTout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pas
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab Elasticsearch
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
 
Grails from scratch to prod - MixIT 2011
Grails from scratch to prod - MixIT 2011Grails from scratch to prod - MixIT 2011
Grails from scratch to prod - MixIT 2011
 
Orchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesOrchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notes
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
 
Introduction au développement Web
Introduction au développement Web Introduction au développement Web
Introduction au développement Web
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs WebUne visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
Une visite guidée d’Internet Explorer 9 et HTML5 pour les développeurs Web
 
Recruter et travailler avec un développeur
Recruter et travailler avec un développeurRecruter et travailler avec un développeur
Recruter et travailler avec un développeur
 
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022
 
A la Découverte des chatbots avec DialogFlow
A la Découverte des chatbots avec DialogFlowA la Découverte des chatbots avec DialogFlow
A la Découverte des chatbots avec DialogFlow
 
Stage de fin d’études – dotcloud
Stage de fin d’études – dotcloudStage de fin d’études – dotcloud
Stage de fin d’études – dotcloud
 
Stage de fin d’études – dotcloud
Stage de fin d’études – dotcloudStage de fin d’études – dotcloud
Stage de fin d’études – dotcloud
 

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

  • 1. 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  
  • 2. MilleZimU   Prérequis   §  InstallaRon  de  la  toolbox   §  GIT   §  CLI  Heroku   §  StrongLoop   §  CLI  Mongo  (OpRonnel)   §  Compte   §  Heroku   §  MongoLab  (base  mongo  créée)  
  • 3. 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  
  • 7. 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)  
  • 9. MilleZimU   Loopback  Explorer   §  Jouer/Tester  son  API   §  npm  i    -­‐-­‐save  loopback-­‐explorer  
  • 10. 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  
  • 11. 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  
  • 12. 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...    
  • 13. MilleZimU   Connexion  des  modèles  a  MongoDB   model-­‐config.js     "Talk":  {      "dataSource":  "humantalk",      "public":  true   },   "Talker":  {      "dataSource":  "humantalk",      "public":  true   }  
  • 14. MilleZimU   On  ajoute  une  RelaRon   §  slc  loopback:relaRon   Talkers  HasMany  Talks     model-­‐config.js   "talks":  {      "type":  "hasMany",      "model":  "Talk",      "foreignKey":  "talkerId"   }  
  • 15. MilleZimU   Do  You  Git  ?   §  git  init   §  git  add  .   §  git  rm  –r  node_modules   §  git  commit  –am”ca  y  est,  on  commence”  
  • 16. 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  
  • 17. 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  
  • 18. MilleZimU   Ajout  d’un  Talker   {    "email":  "anthony.faucogney@millezimu.fr",      "password":"human"   }  
  • 19. MilleZimU   Ajout  d’un  Talk   {      "name":  "RESTMD10",      "date":  "2015-­‐02-­‐27",      "abstract":  "Blabla",      "talkerId":  “….."   }  
  • 20. MilleZimU   RécupéraRon  des  Talks  d’un  Talker  –   Protégé  par  les  droits  
  • 23. 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