AngularJS and REST Made Simple

32
Ben Busse [email protected] Angular + REST Made Simple

description

This presentation was given at the Mar 11, 2014 AngularJS meetup talk at Google. The talk covered the DreamFactory open source REST API platform, Angular's built-in services for making API calls, and a new open source Angular module called angular-dreamfactory for consuming REST APIs for SQL, NoSQL, BLOB storage, and remote web services.

Transcript of AngularJS and REST Made Simple

Page 1: AngularJS and REST Made Simple

Ben [email protected]

Angular + REST Made Simple

Page 2: AngularJS and REST Made Simple

Agenda

Why REST Services?

Angular + REST

angular-dreamfactory demo

Page 3: AngularJS and REST Made Simple

Your Correspondent

Technology evangelist at dreamfactory

We use Angular a lot (web and mobile)

Engineering manager mobile gaming

Product manager enterprise SaaS

Decade working with REST services

K. Chiu

Page 4: AngularJS and REST Made Simple

The Evolution of Apps

Page 5: AngularJS and REST Made Simple

Web Apps – Click, Get a Page

SQL

App Server

Web App

Browser

HTML

Clien

t

S

erv

er

Page 6: AngularJS and REST Made Simple

HTML Contains Everything

GraphicsLayout

ScriptingTextData

Page 7: AngularJS and REST Made Simple

iPhone Ships in 2007

Mobile Era Begins

Page 8: AngularJS and REST Made Simple

Thick Client Apps

SQL, NoSQL,PaaS

REST Services

HTML5 / Native

Devices

JSON

Clien

t

S

erv

er

Page 9: AngularJS and REST Made Simple

From HTML to JSON

95% SizeReduction

{"employees": [

{"name":"John"},

{"name":"Anna"},

{"name":"Peter"}]

}

Page 10: AngularJS and REST Made Simple

CSS / Sass

AngularUIBootstrap

FoundationIonic

Javascript

AngularBackbone

EmberjQuery

KnockoutSencha

Rapid Innovation on the Client

Page 11: AngularJS and REST Made Simple

But What About the Server?

SQL, NoSQL,PaaS

REST Services

HTML5 / Native App

Devices

JSON

?

Page 12: AngularJS and REST Made Simple

We Make Enterprise Apps

Less Code

Flexible Deployment

Mobile Architecture

Existing Data

User Management

Our Wish List…

Page 13: AngularJS and REST Made Simple

We Wanted

Less Code REST APIs Provided

Flexible Deployment

Open Source, Install Anywhere

Mobile Architecture

REST & JSON

Existing DataSQL, NoSQL, BLOB, Remote

User Management

Roles, Auth, Access Control

Page 14: AngularJS and REST Made Simple

It Didn’t Exist

State of the Art…

1) Build REST APIs By Hand 2) Build Security By Hand3) Build User Management By Hand

Repeat for every new project

Page 15: AngularJS and REST Made Simple

We Open Sourced

DreamFactory Services Platform (DSP)

Page 16: AngularJS and REST Made Simple

Native Mobile

SQL

MySQL, Postgres, SQL Server, Oracle, DB2

Automatically Provides REST

API

Hook Up Any Backend System

NoSQL

MongoDB, CouchDB,DynamoDB, Azure

Tables

Files

S3, Rackspace, OpenStack,Azure, Local

DSP

HTML5 & JS

Page 17: AngularJS and REST Made Simple

Free & Open Source

• Apache License• Hosted • Cloud• On Premises

Page 18: AngularJS and REST Made Simple

Unified REST API

Developer

Single interface Security modelUser permissions

DSP Files

NoSQL

SQL

REST + JSON

External Integration

Page 19: AngularJS and REST Made Simple

Simple Development Paradigm

Service Platform

Client SideRES

TJSON

Page 20: AngularJS and REST Made Simple

Less Code, More Consistency

Before

Back

end

Team

Fron

en

d T

eam

InstallDSP

DesignUI

Build & TestApp

Deliver

ConfigureServer &Software

DesignREST APIs

BuildREST APIs

DesignUI

Build & Test App

Test RESTAPIs

Deliver

Now

Page 21: AngularJS and REST Made Simple

Bitnami Installers

http://bitnami.com/stack/dreamfactory

Page 22: AngularJS and REST Made Simple

Free Hosted DSP

www.dreamfactory.com

Page 23: AngularJS and REST Made Simple

Anatomy of an Angular AppModule

Config

Routes

View

Directives

Controller

Factory

Service

Provider

Value

$scope

• Keep Data for Lifetime of App (Singleton)

• Created as Needed (Lazy Loaded)• Share Data Across Controllers• Built-In Services / Write Your Own

Page 24: AngularJS and REST Made Simple

Server Calls with Angular

$http – wraps XMLHttpRequest object$resource – supports RESTful data model

Restangular – service to handle RESTful resources easily

Page 25: AngularJS and REST Made Simple

angular-dreamfactory

Open source Angular module Dynamically generated when app loadsIntegrates your app with DSP REST services

Built on $http service (no $scope.apply required) Add a REST service to DSP and instantly available

DreamFactory.api.service.method

Page 27: AngularJS and REST Made Simple

Good Book

$scopeTwo-way data binding-----------------------------ServicesCORSAuthenticationRoutingPromises

Page 28: AngularJS and REST Made Simple

Demo Time!

Page 30: AngularJS and REST Made Simple

New DSP Features

Server-side events and JS scriptingRAML support Record CRUD security (by user and role)

LDAP / Active Directory / SAMLMulti-tenant VM

Page 32: AngularJS and REST Made Simple

Thank You!

QUESTIONS

[email protected] @benbusse