SlideShare a Scribd company logo
Welcome to Facebook Developer Circle Meetup
* Date: Sunday, 26 Mar 2017
* Place: Ngalup.co, Mojolangu, Malang
Last login: Sun Mar 26 09:00:00 2017 from 127.0.0.1
marudits@dev-circle-mlg:~$ _
Learn Developing REST API
in Node.js using LoopBack Framework
by Marudi Tri Subakti
Welcome to Facebook Developer Circle Meetup
* Date: Sunday, 26 Mar 2017
* Place: Ngalup.co, Mojolangu, Malang
Last login: Sun Mar 26 09:00:00 2017 from 127.0.0.1
marudits@dev-circle-mlg:~$ whoami _
PART
1
{
“name”: “Marudi Tri Subakti”,
“phone”: “(+62) 85646628435”,
“email”: “marudits@gmail.com”,
“works”:[
{
“company”: “PT Musica Studio’s”,
“role”: “Web Developer”,
}, {
“company”: “Tebengan ID”,
“role”: “Web Developer”
}
]
}
Welcome to Facebook Developer Circle Meetup
* Date: Sunday, 26 Mar 2017
* Place: Ngalup.co, Mojolangu, Malang
Last login: Sun Mar 26 09:00:00 2017 from 127.0.0.1
marudits@dev-circle-mlg:~$ whoami
marudits@dev-circle-mlg:~$ man –k ‘REST API’ _
What is?
• Put it simply, REST = REpresentational State Transfer , is an architectural style
define to help create and organize distributed system.
• It is not a guideline, not a standard, or anything that would imply that there are
set a hard of rule to follow
3
PART
21
• There is no Request for Comments (RFC), which can leads to a widespread
incomplete REST ideal
• But have set of contraints to define uniform interface: Client-Server, Stateless,
Cacheable, Uniform Interface, Layered System, Code-on-Demand
Why?
• Performance, communication style is meant to be efficient and simple
3
PART
21
• Scalability, simple interaction greatly allow to handle heavy interaction
• Modifiability, separation of concerns allow to minimize risk
• Portability, can be implemented and consumed by many type of technology
• Reliability, allows for the easier recovery of system after failure
How it works? (Resources)
• Representations
3
PART
21
• Identifier
• Metadata
• Control Data
How it works? (Resources)
• Representations, it can be any way of representing data (binary, JSON, XML, etc)
3
PART
21
• Identifier
• Metadata
• Control Data
How it works? (Resources)
• Representations
3
PART
21
• Identifier, a URL that retrieves only one specific resource at any given time
• Metadata
• Control Data
How it works? (Resources)
• Representations
3
PART
21
• Identifier
• Metadata, Content-type, last-modified time, and so forth
• Control Data, is-modifiable-since, cache-control
Welcome to Facebook Developer Circle Meetup
* Date: Sunday, 26 Mar 2017
* Place: Ngalup.co, Mojolangu, Malang
Last login: Sun Mar 26 09:00:00 2017 from 127.0.0.1
marudits@dev-circle-mlg:~$ whoami
marudits@dev-circle-mlg:~$ man –k ‘REST API’
marudits@dev-circle-mlg:~$ lb --help _
PART
3
42
What is?
• LoopBack framework is a set of Node.js modules that you can use
independently or together to quickly build REST APIs
• Interacts with data sources through the LoopBack model API, available locally
within Node.js, remotely over REST, and via native client APIs for iOS, Android,
and HTML5
• Apps can query databases, store data, upload files, send emails, create push
notifications, register users, and perform other actions provided by data
sources and services.
Introduction
PART
3
42
What is?
Architecture
• Create dynamic end-to-end REST APIs with little or no coding
PART
3
42
Why we use?
• Access data from various data source: major relational databases, MongoDB,
SOAP and REST APIs
• Incorporate model relationships and access controls for complex APIs
• Separable components for file storage, third-party login, and OAuth 2.0
• MIT open-source license
PART
3
42
Why we use?
Loopback Express Sails Meteor
Type API Framework HTTP server
library
Web MVC
framework
Full-stack JavaScript
app platform
Top
Features
Enterprise connectivity, API Explorer,
generators, client SDKs, websocket
microservices
HTTP
routing,
middleware
Rails familiarity,
MVC
Universal JavaScript,
reactive rendering,
websocket
microservices
Suitable
For
Web apps, APIs Simple web
apps
Web apps, APIs Web apps
Clint
SDKs
Angular, Browser, Node.js, iOS, Android,
Xamarin
N/A None JavaScript, Cordova
for iOS and Android,
React, AngularJS
Data
Source
In-memory/file, MongoDB, MySQL,
Oracle, PostgreSQL, SQL Server, ATG,
Email, REST, SOAP, many more.
None In-memory, File,
PostgreSQL, MySQL,
MongoDB
MongoDB, MySQL
and PostgreSQL via
3rd-party packages
ACLs Yes No No Basic allow/deny
Comparation
PART
3
42
Why we use?
“By using LoopBack, we can build REST API easily
with little or no coding, connect to various
datasources and define model relationship & its
control access.”
PART
3
42
How it works?
Core Concepts (Modules)
PART
3
42
How it works?
• Models : Dynamically mock-up models and expose them as APIs without worrying
about persisting
(some) Key Features
• Abstraction : Connect to multiple data sources or services and get back an
abstracted model with CRUD capabilities independent of backing data source.
• Data : Enable connections to RDBMS and noSQL data sources and get back an
abstracted model
• ACL : Controls if a principal can perform a certain operation against a model.
• Remote Method : exposed remote method over a custom REST endpoint to
perform operations not provided by LoopBack’s standard model REST API
• Remote Hook : executed before or after calling a remote method, either a
custom remote method or a standard CRUD inherited from PersistedModel
PART
3
42
Getting Started
• Install : Install the LoopBack CLI tool
$ npm install –g loopback-cli
• Create App : Create a “Hello World” LoopBack application
$ lb
• Create Models : Generate models through CLI
$ lb model
• Run : Run as you would any Node application
$ node .
• Explore : Enables you to exercise all generated API endpoints
http://127.0.0.1:3000/explorer
Welcome to Facebook Developer Circle Meetup
* Date: Sunday, 26 Mar 2017
* Place: Ngalup.co, Mojolangu, Malang
Last login: Sun Mar 26 09:00:00 2017 from 127.0.0.1
marudits@dev-circle-mlg:~$ whoami
marudits@dev-circle-mlg:~$ man –k ‘REST API’
marudits@dev-circle-mlg:~$ lb --help
marudits@dev-circle-mlg:~$ npm run start _
i
< />
{ }
i
< />
{ }
http://loopback.io/
i
< />
{ }
/* install loopback */
$ npm install –g loopback-cli
/* create app */
$ lb
/* create models */
$ lb model
/* attach to datasource */
$ lb datasource
/* define relations */
$ lb relation
/* run app */
$ node .
/*  develop your own */
/* set access control */
$ lb acl
i
< />
{ }
https://ant.design/
i
< />
{ }
/* install antd-init generator */
$ npm install –g antd-init
/* make and move to app directory */
$ mkdir helloworld && cd helloworld
/* create app */
$ antd-init
/* run app */
$ npm start
/*  develop your own */
Welcome to Facebook Developer Circle Meetup
* Date: Sunday, 26 Mar 2017
* Place: Ngalup.co, Mojolangu, Malang
Last login: Sun Mar 26 09:00:00 2017 from 127.0.0.1
marudits@dev-circle-mlg:~$ whoami
marudits@dev-circle-mlg:~$ man –k ‘REST API’
marudits@dev-circle-mlg:~$ lb --help
marudits@dev-circle-mlg:~$ npm run start
marudits@dev-circle-mlg:~$ ping tebengan.id _
Should our stories resonate with you, why not
share your stories and aspiration with us
and help build tebengan together (?)
build@tebengan.id
Welcome to Facebook Developer Circle Meetup
* Date: Sunday, 26 Mar 2017
* Place: Ngalup.co, Mojolangu, Malang
Last login: Sun Mar 26 09:00:00 2017 from 127.0.0.1
marudits@dev-circle-mlg:~$ whoami
marudits@dev-circle-mlg:~$ man –k ‘REST API’
marudits@dev-circle-mlg:~$ lb --help
marudits@dev-circle-mlg:~$ npm run start
marudits@dev-circle-mlg:~$ ping tebengan.id
marudits@dev-circle-mlg:~$ shutdown –h now _
Learn Developing REST API
in Node.js using LoopBack Framework
by Marudi Tri Subakti
Ad

Recommended

Choosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkit
Hristo Chakarov
 
Javascript Frameworks
Javascript Frameworks
Mitesh Gandhi
 
A Minimalist’s Attempt at Building a Distributed Application
A Minimalist’s Attempt at Building a Distributed Application
David Hoerster
 
Building single page applications
Building single page applications
SC5.io
 
Rapid API Development with LoopBack/StrongLoop
Rapid API Development with LoopBack/StrongLoop
Raymond Camden
 
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...
Bojan Veljanovski
 
Building a Node.js API backend with LoopBack in 5 Minutes
Building a Node.js API backend with LoopBack in 5 Minutes
Raymond Feng
 
Sfk13
Sfk13
Flamur Mavraj
 
Beginning MEAN Stack
Beginning MEAN Stack
Rob Davarnia
 
Working with LoopBack Models
Working with LoopBack Models
Raymond Feng
 
Making Single Page Applications (SPA) faster
Making Single Page Applications (SPA) faster
Boris Livshutz
 
LoopBack: a productivity booster for MEAN
LoopBack: a productivity booster for MEAN
Miroslav Bajtoš
 
Building Mobile Apps With Ionic & Loopback
Building Mobile Apps With Ionic & Loopback
Chibuzor Obiora
 
Building a Single-Page App: Backbone, Node.js, and Beyond
Building a Single-Page App: Backbone, Node.js, and Beyond
Spike Brehm
 
Introduction To Single Page Application
Introduction To Single Page Application
KMS Technology
 
Building Modern Web Apps with MEAN Stack
Building Modern Web Apps with MEAN Stack
Suresh Patidar
 
Mvvm knockout vs angular
Mvvm knockout vs angular
Basarat Syed
 
Introduction to JavaScript Full Stack
Introduction to JavaScript Full Stack
Mindfire Solutions
 
Moving from PHP to a nodejs full stack CMS
Moving from PHP to a nodejs full stack CMS
Make & Build
 
Server rendering-talk
Server rendering-talk
Daiwei Lu
 
Deep dive into Vue.js
Deep dive into Vue.js
선협 이
 
Full stack JavaScript - the folly of choice
Full stack JavaScript - the folly of choice
FDConf
 
Single Page WebApp Architecture
Single Page WebApp Architecture
Morgan Cheng
 
introduction to Vue.js 3
introduction to Vue.js 3
ArezooKmn
 
Introduction to Vue.js DevStaff Meetup 13.02
Introduction to Vue.js DevStaff Meetup 13.02
Paul Bele
 
The MEAN stack - SoCalCodeCamp - june 29th 2014
The MEAN stack - SoCalCodeCamp - june 29th 2014
Simona Clapan
 
FULL stack -> MEAN stack
FULL stack -> MEAN stack
Ashok Raj
 
Kickstarting Node.js Projects with Yeoman
Kickstarting Node.js Projects with Yeoman
Patrick Buergin
 
Node.js (RichClient)
Node.js (RichClient)
Serge Shirokov
 
AllcountJS VTB24 loan сonveyor POC
AllcountJS VTB24 loan сonveyor POC
Pavel Tiunov
 

More Related Content

What's hot (20)

Beginning MEAN Stack
Beginning MEAN Stack
Rob Davarnia
 
Working with LoopBack Models
Working with LoopBack Models
Raymond Feng
 
Making Single Page Applications (SPA) faster
Making Single Page Applications (SPA) faster
Boris Livshutz
 
LoopBack: a productivity booster for MEAN
LoopBack: a productivity booster for MEAN
Miroslav Bajtoš
 
Building Mobile Apps With Ionic & Loopback
Building Mobile Apps With Ionic & Loopback
Chibuzor Obiora
 
Building a Single-Page App: Backbone, Node.js, and Beyond
Building a Single-Page App: Backbone, Node.js, and Beyond
Spike Brehm
 
Introduction To Single Page Application
Introduction To Single Page Application
KMS Technology
 
Building Modern Web Apps with MEAN Stack
Building Modern Web Apps with MEAN Stack
Suresh Patidar
 
Mvvm knockout vs angular
Mvvm knockout vs angular
Basarat Syed
 
Introduction to JavaScript Full Stack
Introduction to JavaScript Full Stack
Mindfire Solutions
 
Moving from PHP to a nodejs full stack CMS
Moving from PHP to a nodejs full stack CMS
Make & Build
 
Server rendering-talk
Server rendering-talk
Daiwei Lu
 
Deep dive into Vue.js
Deep dive into Vue.js
선협 이
 
Full stack JavaScript - the folly of choice
Full stack JavaScript - the folly of choice
FDConf
 
Single Page WebApp Architecture
Single Page WebApp Architecture
Morgan Cheng
 
introduction to Vue.js 3
introduction to Vue.js 3
ArezooKmn
 
Introduction to Vue.js DevStaff Meetup 13.02
Introduction to Vue.js DevStaff Meetup 13.02
Paul Bele
 
The MEAN stack - SoCalCodeCamp - june 29th 2014
The MEAN stack - SoCalCodeCamp - june 29th 2014
Simona Clapan
 
FULL stack -> MEAN stack
FULL stack -> MEAN stack
Ashok Raj
 
Kickstarting Node.js Projects with Yeoman
Kickstarting Node.js Projects with Yeoman
Patrick Buergin
 
Beginning MEAN Stack
Beginning MEAN Stack
Rob Davarnia
 
Working with LoopBack Models
Working with LoopBack Models
Raymond Feng
 
Making Single Page Applications (SPA) faster
Making Single Page Applications (SPA) faster
Boris Livshutz
 
LoopBack: a productivity booster for MEAN
LoopBack: a productivity booster for MEAN
Miroslav Bajtoš
 
Building Mobile Apps With Ionic & Loopback
Building Mobile Apps With Ionic & Loopback
Chibuzor Obiora
 
Building a Single-Page App: Backbone, Node.js, and Beyond
Building a Single-Page App: Backbone, Node.js, and Beyond
Spike Brehm
 
Introduction To Single Page Application
Introduction To Single Page Application
KMS Technology
 
Building Modern Web Apps with MEAN Stack
Building Modern Web Apps with MEAN Stack
Suresh Patidar
 
Mvvm knockout vs angular
Mvvm knockout vs angular
Basarat Syed
 
Introduction to JavaScript Full Stack
Introduction to JavaScript Full Stack
Mindfire Solutions
 
Moving from PHP to a nodejs full stack CMS
Moving from PHP to a nodejs full stack CMS
Make & Build
 
Server rendering-talk
Server rendering-talk
Daiwei Lu
 
Deep dive into Vue.js
Deep dive into Vue.js
선협 이
 
Full stack JavaScript - the folly of choice
Full stack JavaScript - the folly of choice
FDConf
 
Single Page WebApp Architecture
Single Page WebApp Architecture
Morgan Cheng
 
introduction to Vue.js 3
introduction to Vue.js 3
ArezooKmn
 
Introduction to Vue.js DevStaff Meetup 13.02
Introduction to Vue.js DevStaff Meetup 13.02
Paul Bele
 
The MEAN stack - SoCalCodeCamp - june 29th 2014
The MEAN stack - SoCalCodeCamp - june 29th 2014
Simona Clapan
 
FULL stack -> MEAN stack
FULL stack -> MEAN stack
Ashok Raj
 
Kickstarting Node.js Projects with Yeoman
Kickstarting Node.js Projects with Yeoman
Patrick Buergin
 

Viewers also liked (12)

Node.js (RichClient)
Node.js (RichClient)
Serge Shirokov
 
AllcountJS VTB24 loan сonveyor POC
AllcountJS VTB24 loan сonveyor POC
Pavel Tiunov
 
Web В РЕАЛЬНОМ ВРЕМЕНИ С Node.js - AgileBaseCamp - 2012
Web В РЕАЛЬНОМ ВРЕМЕНИ С Node.js - AgileBaseCamp - 2012
Dmytro Mindra
 
Moscow js node.js enterprise development
Moscow js node.js enterprise development
Pavel Tiunov
 
Use Node.js to create a REST API
Use Node.js to create a REST API
Fabien Vauchelles
 
ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS
Pavel Tsukanov
 
Introduction to REST API with Node.js
Introduction to REST API with Node.js
Yoann Gotthilf
 
Архитектура программных систем на Node.js
Архитектура программных систем на Node.js
Timur Shemsedinov
 
Асинхронность и параллелизм в Node.js
Асинхронность и параллелизм в Node.js
GeeksLab Odessa
 
Developing and Testing a MongoDB and Node.js REST API
Developing and Testing a MongoDB and Node.js REST API
All Things Open
 
Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture
AppDynamics
 
Инфраструктура распределенных приложений на Node.js
Инфраструктура распределенных приложений на Node.js
Stanislav Gumeniuk
 
AllcountJS VTB24 loan сonveyor POC
AllcountJS VTB24 loan сonveyor POC
Pavel Tiunov
 
Web В РЕАЛЬНОМ ВРЕМЕНИ С Node.js - AgileBaseCamp - 2012
Web В РЕАЛЬНОМ ВРЕМЕНИ С Node.js - AgileBaseCamp - 2012
Dmytro Mindra
 
Moscow js node.js enterprise development
Moscow js node.js enterprise development
Pavel Tiunov
 
Use Node.js to create a REST API
Use Node.js to create a REST API
Fabien Vauchelles
 
ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS
Pavel Tsukanov
 
Introduction to REST API with Node.js
Introduction to REST API with Node.js
Yoann Gotthilf
 
Архитектура программных систем на Node.js
Архитектура программных систем на Node.js
Timur Shemsedinov
 
Асинхронность и параллелизм в Node.js
Асинхронность и параллелизм в Node.js
GeeksLab Odessa
 
Developing and Testing a MongoDB and Node.js REST API
Developing and Testing a MongoDB and Node.js REST API
All Things Open
 
Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture
AppDynamics
 
Инфраструктура распределенных приложений на Node.js
Инфраструктура распределенных приложений на Node.js
Stanislav Gumeniuk
 
Ad

Similar to Learn Developing REST API in Node.js using LoopBack Framework (20)

LoopbackJS the intro
LoopbackJS the intro
Fahmi Abdul Latip
 
Rapid app building with loopback framework
Rapid app building with loopback framework
Thomas Papaspiros
 
Create and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and Bluemix
Dev_Events
 
Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js Workshop
Jimmy Guerrero
 
2019 02 05 Toronto Cloud Integration Meetup
2019 02 05 Toronto Cloud Integration Meetup
Dave Whiteley
 
StrongLoop Overview
StrongLoop Overview
Shubhra Kar
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshop
Shubhra Kar
 
Getting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi Framework
Jimmy Guerrero
 
StrongLoop Node.js API Security & Customization
StrongLoop Node.js API Security & Customization
jguerrero999
 
REST API Graph API GraphQL GraphiQL Presentation
REST API Graph API GraphQL GraphiQL Presentation
Atharva Jawalkar
 
An Intense Overview of the React Ecosystem
An Intense Overview of the React Ecosystem
Rami Sayar
 
GraphQL.pptx
GraphQL.pptx
Preston Flossy
 
GraphQL.pptx
GraphQL.pptx
Preston Flossy
 
API
API
Masters Academy
 
Toronto node js_meetup
Toronto node js_meetup
Shubhra Kar
 
mern _stack _power _point_ presentation(1)
mern _stack _power _point_ presentation(1)
susmithalanka2
 
Rest - Representational State Transfer (EMC BRDC Internal Tech talk)
Rest - Representational State Transfer (EMC BRDC Internal Tech talk)
Rodrigo Senra
 
TPSE Thailand 2015 - Rethinking Web with React and Flux
TPSE Thailand 2015 - Rethinking Web with React and Flux
Jirat Kijlerdpornpailoj
 
Facebook APIs
Facebook APIs
Andrew Sorensen
 
GraphQL: The Missing Link Between Frontend and Backend Devs
GraphQL: The Missing Link Between Frontend and Backend Devs
Sashko Stubailo
 
Rapid app building with loopback framework
Rapid app building with loopback framework
Thomas Papaspiros
 
Create and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and Bluemix
Dev_Events
 
Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js Workshop
Jimmy Guerrero
 
2019 02 05 Toronto Cloud Integration Meetup
2019 02 05 Toronto Cloud Integration Meetup
Dave Whiteley
 
StrongLoop Overview
StrongLoop Overview
Shubhra Kar
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshop
Shubhra Kar
 
Getting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi Framework
Jimmy Guerrero
 
StrongLoop Node.js API Security & Customization
StrongLoop Node.js API Security & Customization
jguerrero999
 
REST API Graph API GraphQL GraphiQL Presentation
REST API Graph API GraphQL GraphiQL Presentation
Atharva Jawalkar
 
An Intense Overview of the React Ecosystem
An Intense Overview of the React Ecosystem
Rami Sayar
 
Toronto node js_meetup
Toronto node js_meetup
Shubhra Kar
 
mern _stack _power _point_ presentation(1)
mern _stack _power _point_ presentation(1)
susmithalanka2
 
Rest - Representational State Transfer (EMC BRDC Internal Tech talk)
Rest - Representational State Transfer (EMC BRDC Internal Tech talk)
Rodrigo Senra
 
TPSE Thailand 2015 - Rethinking Web with React and Flux
TPSE Thailand 2015 - Rethinking Web with React and Flux
Jirat Kijlerdpornpailoj
 
GraphQL: The Missing Link Between Frontend and Backend Devs
GraphQL: The Missing Link Between Frontend and Backend Devs
Sashko Stubailo
 
Ad

Recently uploaded (20)

Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Puppy jhon
 
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
Muhammad Rizwan Akram
 
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
Edge AI and Vision Alliance
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Edge-banding-machines-edgeteq-s-200-en-.pdf
Edge-banding-machines-edgeteq-s-200-en-.pdf
AmirStern2
 
TrustArc Webinar - 2025 Global Privacy Survey
TrustArc Webinar - 2025 Global Privacy Survey
TrustArc
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
AudGram Review: Build Visually Appealing, AI-Enhanced Audiograms to Engage Yo...
AudGram Review: Build Visually Appealing, AI-Enhanced Audiograms to Engage Yo...
SOFTTECHHUB
 
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
Safe Software
 
SAP Modernization Strategies for a Successful S/4HANA Journey.pdf
SAP Modernization Strategies for a Successful S/4HANA Journey.pdf
Precisely
 
Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
Mastering AI Workflows with FME - Peak of Data & AI 2025
Mastering AI Workflows with FME - Peak of Data & AI 2025
Safe Software
 
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Safe Software
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
The State of Web3 Industry- Industry Report
The State of Web3 Industry- Industry Report
Liveplex
 
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
Safe Software
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Puppy jhon
 
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
ENERGY CONSUMPTION CALCULATION IN ENERGY-EFFICIENT AIR CONDITIONER.pdf
Muhammad Rizwan Akram
 
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
Edge AI and Vision Alliance
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Edge-banding-machines-edgeteq-s-200-en-.pdf
Edge-banding-machines-edgeteq-s-200-en-.pdf
AmirStern2
 
TrustArc Webinar - 2025 Global Privacy Survey
TrustArc Webinar - 2025 Global Privacy Survey
TrustArc
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
AudGram Review: Build Visually Appealing, AI-Enhanced Audiograms to Engage Yo...
AudGram Review: Build Visually Appealing, AI-Enhanced Audiograms to Engage Yo...
SOFTTECHHUB
 
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
FME for Distribution & Transmission Integrity Management Program (DIMP & TIMP)
Safe Software
 
SAP Modernization Strategies for a Successful S/4HANA Journey.pdf
SAP Modernization Strategies for a Successful S/4HANA Journey.pdf
Precisely
 
Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
Mastering AI Workflows with FME - Peak of Data & AI 2025
Mastering AI Workflows with FME - Peak of Data & AI 2025
Safe Software
 
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Safe Software
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
The State of Web3 Industry- Industry Report
The State of Web3 Industry- Industry Report
Liveplex
 
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
Safe Software
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 

Learn Developing REST API in Node.js using LoopBack Framework

  • 1. Welcome to Facebook Developer Circle Meetup * Date: Sunday, 26 Mar 2017 * Place: Ngalup.co, Mojolangu, Malang Last login: Sun Mar 26 09:00:00 2017 from 127.0.0.1 marudits@dev-circle-mlg:~$ _
  • 2. Learn Developing REST API in Node.js using LoopBack Framework by Marudi Tri Subakti
  • 3. Welcome to Facebook Developer Circle Meetup * Date: Sunday, 26 Mar 2017 * Place: Ngalup.co, Mojolangu, Malang Last login: Sun Mar 26 09:00:00 2017 from 127.0.0.1 marudits@dev-circle-mlg:~$ whoami _
  • 4. PART 1 { “name”: “Marudi Tri Subakti”, “phone”: “(+62) 85646628435”, “email”: “[email protected]”, “works”:[ { “company”: “PT Musica Studio’s”, “role”: “Web Developer”, }, { “company”: “Tebengan ID”, “role”: “Web Developer” } ] }
  • 5. Welcome to Facebook Developer Circle Meetup * Date: Sunday, 26 Mar 2017 * Place: Ngalup.co, Mojolangu, Malang Last login: Sun Mar 26 09:00:00 2017 from 127.0.0.1 marudits@dev-circle-mlg:~$ whoami marudits@dev-circle-mlg:~$ man –k ‘REST API’ _
  • 6. What is? • Put it simply, REST = REpresentational State Transfer , is an architectural style define to help create and organize distributed system. • It is not a guideline, not a standard, or anything that would imply that there are set a hard of rule to follow 3 PART 21 • There is no Request for Comments (RFC), which can leads to a widespread incomplete REST ideal • But have set of contraints to define uniform interface: Client-Server, Stateless, Cacheable, Uniform Interface, Layered System, Code-on-Demand
  • 7. Why? • Performance, communication style is meant to be efficient and simple 3 PART 21 • Scalability, simple interaction greatly allow to handle heavy interaction • Modifiability, separation of concerns allow to minimize risk • Portability, can be implemented and consumed by many type of technology • Reliability, allows for the easier recovery of system after failure
  • 8. How it works? (Resources) • Representations 3 PART 21 • Identifier • Metadata • Control Data
  • 9. How it works? (Resources) • Representations, it can be any way of representing data (binary, JSON, XML, etc) 3 PART 21 • Identifier • Metadata • Control Data
  • 10. How it works? (Resources) • Representations 3 PART 21 • Identifier, a URL that retrieves only one specific resource at any given time • Metadata • Control Data
  • 11. How it works? (Resources) • Representations 3 PART 21 • Identifier • Metadata, Content-type, last-modified time, and so forth • Control Data, is-modifiable-since, cache-control
  • 12. Welcome to Facebook Developer Circle Meetup * Date: Sunday, 26 Mar 2017 * Place: Ngalup.co, Mojolangu, Malang Last login: Sun Mar 26 09:00:00 2017 from 127.0.0.1 marudits@dev-circle-mlg:~$ whoami marudits@dev-circle-mlg:~$ man –k ‘REST API’ marudits@dev-circle-mlg:~$ lb --help _
  • 13. PART 3 42 What is? • LoopBack framework is a set of Node.js modules that you can use independently or together to quickly build REST APIs • Interacts with data sources through the LoopBack model API, available locally within Node.js, remotely over REST, and via native client APIs for iOS, Android, and HTML5 • Apps can query databases, store data, upload files, send emails, create push notifications, register users, and perform other actions provided by data sources and services. Introduction
  • 15. • Create dynamic end-to-end REST APIs with little or no coding PART 3 42 Why we use? • Access data from various data source: major relational databases, MongoDB, SOAP and REST APIs • Incorporate model relationships and access controls for complex APIs • Separable components for file storage, third-party login, and OAuth 2.0 • MIT open-source license
  • 16. PART 3 42 Why we use? Loopback Express Sails Meteor Type API Framework HTTP server library Web MVC framework Full-stack JavaScript app platform Top Features Enterprise connectivity, API Explorer, generators, client SDKs, websocket microservices HTTP routing, middleware Rails familiarity, MVC Universal JavaScript, reactive rendering, websocket microservices Suitable For Web apps, APIs Simple web apps Web apps, APIs Web apps Clint SDKs Angular, Browser, Node.js, iOS, Android, Xamarin N/A None JavaScript, Cordova for iOS and Android, React, AngularJS Data Source In-memory/file, MongoDB, MySQL, Oracle, PostgreSQL, SQL Server, ATG, Email, REST, SOAP, many more. None In-memory, File, PostgreSQL, MySQL, MongoDB MongoDB, MySQL and PostgreSQL via 3rd-party packages ACLs Yes No No Basic allow/deny Comparation
  • 17. PART 3 42 Why we use? “By using LoopBack, we can build REST API easily with little or no coding, connect to various datasources and define model relationship & its control access.”
  • 18. PART 3 42 How it works? Core Concepts (Modules)
  • 19. PART 3 42 How it works? • Models : Dynamically mock-up models and expose them as APIs without worrying about persisting (some) Key Features • Abstraction : Connect to multiple data sources or services and get back an abstracted model with CRUD capabilities independent of backing data source. • Data : Enable connections to RDBMS and noSQL data sources and get back an abstracted model • ACL : Controls if a principal can perform a certain operation against a model. • Remote Method : exposed remote method over a custom REST endpoint to perform operations not provided by LoopBack’s standard model REST API • Remote Hook : executed before or after calling a remote method, either a custom remote method or a standard CRUD inherited from PersistedModel
  • 20. PART 3 42 Getting Started • Install : Install the LoopBack CLI tool $ npm install –g loopback-cli • Create App : Create a “Hello World” LoopBack application $ lb • Create Models : Generate models through CLI $ lb model • Run : Run as you would any Node application $ node . • Explore : Enables you to exercise all generated API endpoints http://127.0.0.1:3000/explorer
  • 21. Welcome to Facebook Developer Circle Meetup * Date: Sunday, 26 Mar 2017 * Place: Ngalup.co, Mojolangu, Malang Last login: Sun Mar 26 09:00:00 2017 from 127.0.0.1 marudits@dev-circle-mlg:~$ whoami marudits@dev-circle-mlg:~$ man –k ‘REST API’ marudits@dev-circle-mlg:~$ lb --help marudits@dev-circle-mlg:~$ npm run start _
  • 24. i < /> { } /* install loopback */ $ npm install –g loopback-cli /* create app */ $ lb /* create models */ $ lb model /* attach to datasource */ $ lb datasource /* define relations */ $ lb relation /* run app */ $ node . /*  develop your own */ /* set access control */ $ lb acl
  • 26. i < /> { } /* install antd-init generator */ $ npm install –g antd-init /* make and move to app directory */ $ mkdir helloworld && cd helloworld /* create app */ $ antd-init /* run app */ $ npm start /*  develop your own */
  • 27. Welcome to Facebook Developer Circle Meetup * Date: Sunday, 26 Mar 2017 * Place: Ngalup.co, Mojolangu, Malang Last login: Sun Mar 26 09:00:00 2017 from 127.0.0.1 marudits@dev-circle-mlg:~$ whoami marudits@dev-circle-mlg:~$ man –k ‘REST API’ marudits@dev-circle-mlg:~$ lb --help marudits@dev-circle-mlg:~$ npm run start marudits@dev-circle-mlg:~$ ping tebengan.id _
  • 28. Should our stories resonate with you, why not share your stories and aspiration with us and help build tebengan together (?) [email protected]
  • 29. Welcome to Facebook Developer Circle Meetup * Date: Sunday, 26 Mar 2017 * Place: Ngalup.co, Mojolangu, Malang Last login: Sun Mar 26 09:00:00 2017 from 127.0.0.1 marudits@dev-circle-mlg:~$ whoami marudits@dev-circle-mlg:~$ man –k ‘REST API’ marudits@dev-circle-mlg:~$ lb --help marudits@dev-circle-mlg:~$ npm run start marudits@dev-circle-mlg:~$ ping tebengan.id marudits@dev-circle-mlg:~$ shutdown –h now _
  • 30. Learn Developing REST API in Node.js using LoopBack Framework by Marudi Tri Subakti

Editor's Notes

  • #7: REST is an architectural style define to help create and organize distributed system
  • #8: Performance, communication style is meant to be efficient and simple Scalability, simple interaction greatly allow to handle heavy interaction Modifiability, separation of concerns allow to minimize risk Portability, can be implemented and consumed by many type of technology Reliability, allows for the easier recovery of system after failure
  • #16: Core Set up models and create REST APIs in minutes Easy-to-use CLI wizard Create models based on your schema if you have one Create dynamic models if you don't Built-in API Explorer Model relation support Define hasMany, belongsTo, hasAndBelongsToMany relationships Automatically generates corresponding relational REST endpoints Easy authentication and authorization setup Built-in role-based access controls oAuth user and registration models baked in Add custom policies using CLI or JSON Browser support (JSONP and CORS) MIT Open-Source license
  • #25: Demo : about 10-15 minutes departureName string arrivalName string departurePoint geopoint arrivalPoint geopoint departureSublocations string arrivalSublocations string departureDate date Price number Seats number isCar Boolean Description string
  • #26: Demo : about 10-15 minutes
  • #27: Demo : about 5 minutes