1Proprietary and Confidential AirVantage API – Getting started David SCIAMMA – June 13th 2014.

Slides:



Advertisements
Similar presentations
Pierre-Johan CHARTRE Java EE - JAX-RS - Pierre-Johan CHARTRE
Advertisements

SIP and Instant Messaging. SIP Summit SIP and Instant Messaging What Does Presence Have to Do With SIP? How to Deliver.
12 October 2011 Andrew Brown IMu Technology EMu Global Users Group 12 October 2011 IMu Technology.
Introduction to Web Services
LiNC Developer Meetup Welcome!. Our job is to make your life easier APIs Tools and workflow Documentation Stay in touch: developers.lithium.com Join the.
ARINs RESTful Provisioning Interface Tim Christensen.
Web Service Testing RESTful Web Services Snejina Lazarova Dimo Mitev
Overview of Twitter API Nathan Liu. Twitter API Essentials Twitter API is a Representational State Transfer(REST) style web services exposed over HTTP(S).
WEB DESIGN TABLES, PAGE LAYOUT AND FORMS. Page Layout Page Layout is an important part of web design Why do you think your page layout is important?
Attie Naude 14 May 2013 Windows Azure Mobile Services.
New Release Announcements and Product Roadmap Chris DiPierro, Director of Software Development April 9-11, 2014
ONE STOP THE TOTAL SERVICE SOLUTION FOR REMOTE DEVICE MANAGMENT.
Building RESTful Interfaces
Using Evernote and Google Docs in your web or mobile application (and potentially Dropbox and Skydrive) By Peter Messenger Senior Developer – Triple Point.
Introduction to Web Services and Web API’s Richard Holowczak Baruch College December, 2014.
#spsevents #spsphx SPS EVENTS PHX Know REST for the Query AN INTRODUCTION TO REST FOR SHAREPOINT 2013 ERIC J OSZAKIEWSKI, MCTS, MS, MCPS.
Dodick Zulaimi Sudirman Lecture 12 Introduction to AJAX Pengantar Teknologi Internet Introduction to Internet Technology.
Peoplesoft: Building and Consuming Web Services
Implementing Application Protocols. Overview An application protocol facilitates communication between applications. For example, an client uses.
1 The World Wide Web. 2  Web Fundamentals  Pages are defined by the Hypertext Markup Language (HTML) and contain text, graphics, audio, video and software.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
IT 210 The Internet & World Wide Web introduction.
OAuth-as-a-service using ASP.NET Web API and Windows Azure Access Control Maarten
Common Alerting Protocol (CAP) Implementation Workshop – 2014 ArcGIS Geotrigger for CAP Implementation by Nalaka Kodippili Geo Technical Manager GIS Solutions.
Copyright © cs-tutorial.com. Introduction to Web Development In 1990 and 1991,Tim Berners-Lee created the World Wide Web at the European Laboratory for.
Using the SAS® Information Delivery Portal
November 13, 2008 Ohio Information Security Forum Attack Surface of Web Applications James Walden Northern Kentucky University
RESTful applications Norman White. REST Representational state transfer Key concepts – Client Server architecture built on transferring resources between.
Project “Astoria” first announced in Mix 2007 Shared early prototypes, got tons of feedback Now we’re talking about the real deal Production quality bits,
Windows 8 Application Microsoft Word with Apps For Office Internal O365 SharePoint Site Windows Azure Cloud Services Windows Azure Workflow Server.
A FIRST TOUCH ON NOSQL SERVERS: COUCHDB GENOVEVA VARGAS SOLAR, JAVIER ESPINOSA CNRS, LIG-LAFMIA, FRANCE
Google Data Protocol Guy Mark Lifshitz. Motivation Google’s Mission: – Organize the world’s information – Make information universally accessible – Provide.
Server - Client Communication Getting data from server.
Facebook API Kelly Orser. Client Libraries Client libraries will simplify the calls to the platform by reducing the amount of code you have to write.
API Crash Course CWU Startup Club. OUTLINE What is an API? Why are API’s useful? What is HTTP? JSON? XML? What is a RESTful API? How do we consume an.
Project Objectives A multi-function programmable SIP user agent for multimedia communications, such as audio, video, white board, desktop sharing, shared.
1 Alternative view on Internet Computing Web 1.0 –Web 1.0 is first generation, Web Information based. Driven by Information provider. Web 2.0 Ajax enabled.
IS-907 Java EE World Wide Web - Overview. World Wide Web - History Tim Berners-Lee, CERN, 1990 Enable researchers to share information: Remote Access.
ICM – API Server & Forms Gary Ratcliffe.
Web Technologies Lecture 10 Web services. From W3C – A software system designed to support interoperable machine-to-machine interaction over a network.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
Welcome to Azure App Services! Amie Seisay
AJAX. Overview of Ajax Ajax is not an API or a programming language Ajax aims to provide more responsive web applications In normal request/response HTTP.
© 2015 Cisco System Inc. All rights reserved Cisco Confidential 1 © 2015 Cisco System Inc. All rights reserved. 1 Subject Line Customization for Notifications.
Chapter 6.  Internet and characteristics of Internet.  Various Internet protocols  Static IP addressing and Dynamic IP addressing Prepared by Saher.
Exploring Mobile Device Networking Lesson 4. Exam Objective Matrix Skills/ConceptsMTA Exam Objectives Understanding Networking for Mobile Devices Network.
Secure Mobile Development with NetIQ Access Manager
JQuery form submission CIS 136 Building Mobile Apps 1.
REST API Design. Application API API = Application Programming Interface APIs expose functionality of an application or service that exists independently.
1 Seminar: Pervasive Computing 2004 Automatic mobile device configuration: Status & open challenges Stefan Hoferer Supervisor: Andreas Fasbender.
Open Solutions for a Changing World™ Eddy Kleinjan Copyright 2005, Data Access WordwideNew Techniques for Building Web Applications June 6-9, 2005 Key.
National College of Science & Information Technology.
Developers Introduction to the Power BI Platform.
Web Development. Agenda Web History Network Architecture Types of Server The languages of the web Protocols API 2.
Building Azure Mobile Apps
API (Application Program Interface)
Node.js Express Web Services
AJAX and REST.
An introduction to REST for SharePoint 2013
Applied Cyber Infrastructure Concepts Fall 2017
Testing REST IPA using POSTMAN
Azure AD Line Of Business Application Integration
WEB API.
$, $$, $$$ API testing Edition
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Building production-ready APIs with ASP.NET Core 2.2
WCF Data Services and Silverlight
Informer 5 API How to get connected and start integrating
D Guidance 26-Jun: Would like to see a refresh of this title slide
Presentation transcript:

1Proprietary and Confidential AirVantage API – Getting started David SCIAMMA – June 13th 2014

2Proprietary and Confidential How can I integrate AirVantage? 2 Enterprise systems Desktop/Web/Mobile apps Your remote assets RESTful API

3Proprietary and Confidential Understand the concepts How to use AirVantage API step by step Use a concrete use case as an example How to use Postman What you will learn

4Proprietary and Confidential How to develop a web application How to develop an Android or iOS application What you won’t learn

5Proprietary and Confidential « I want to do a first test to call AirVantage API » Where’s the documentation? Let’s start!

6Proprietary and Confidential Documentation

7Proprietary and Confidential « I want to do a first test to call AirVantage API » Let’s check I’m authenticated. Get details about me: Which tool? Let’s start! > GET

8Proprietary and Confidential Postman –

9Proprietary and Confidential « I want to do a first test to call AirVantage API » Let’s check I’m authenticated. Get details about me: How can I get a token? Let’s start! > GET

10Proprietary and Confidential Reuse the token from the user interface

11Proprietary and Confidential Reuse the token from the user interface This method should only be used for quick testing Use OAuth for real development!

12Proprietary and Confidential Create an API Client 3 flows to get a token Resource owner for really trusted application Authorization code for server-side application Implicit for client-side application Postman supports the Authorization code! Use OAuth 2.0 Specs:

13Proprietary and Confidential Request: Response: API Basics > GET { uid: "81210eca05484d34a29bc6c34dc31bf7", name: "David Sciamma", company: { uid: "97ba9e a a87152e3f4", name: "Sierra Wireless" }, profile: { uid: "df1c0f7d5f8c4db2b45978f98e1093ad", name: "Manager" } { uid: "81210eca05484d34a29bc6c34dc31bf7", name: "David Sciamma", company: { uid: "97ba9e a a87152e3f4", name: "Sierra Wireless" }, profile: { uid: "df1c0f7d5f8c4db2b45978f98e1093ad", name: "Manager" }

14Proprietary and Confidential REST (Representational state transfer) Base URI, such as An Internet media type (JSON, XML, RSS, CSV…) Standard HTTP methods GET - Used for retrieving resources, POST - Used for creating resources, performing custom actions, PUT - Used for updating resources or collections. DELETE - Used for deleting resources Hypertext links

15Proprietary and Confidential Request: Response: API Basics > GET { uid: "81210eca05484d34a29bc6c34dc31bf7", name: "David Sciamma", company: { uid: "97ba9e a a87152e3f4", name: "Sierra Wireless" }, profile: { uid: "df1c0f7d5f8c4db2b45978f98e1093ad", name: "Manager" } { uid: "81210eca05484d34a29bc6c34dc31bf7", name: "David Sciamma", company: { uid: "97ba9e a a87152e3f4", name: "Sierra Wireless" }, profile: { uid: "df1c0f7d5f8c4db2b45978f98e1093ad", name: "Manager" } HTTP VerbBase URIResource Path

16Proprietary and Confidential Request: Response: API Basics > GET { uid: "81210eca05484d34a29bc6c34dc31bf7", name: "David Sciamma", company: { uid: "97ba9e a a87152e3f4", name: "Sierra Wireless" }, profile: { uid: "df1c0f7d5f8c4db2b45978f98e1093ad", name: "Manager" } { uid: "81210eca05484d34a29bc6c34dc31bf7", name: "David Sciamma", company: { uid: "97ba9e a a87152e3f4", name: "Sierra Wireless" }, profile: { uid: "df1c0f7d5f8c4db2b45978f98e1093ad", name: "Manager" } JSON Object

17Proprietary and Confidential Widely adopted Language independent Simple (set of attribute-value pairs) Types Number, String, Boolean, Array, Object, null JSON (JavaScript Object Notation)

18Proprietary and Confidential « Yeah! It was easy. Let’s use it for real now! » Let’s start!

19Proprietary and Confidential I have my greenhouse connected and communicating with AirVantage. I want to leverage AirVantage API to get messages received from the greenhouses, automate some communications, analyze the data The story

20Proprietary and Confidential « I want to see the messages from my device. » List the messages received from a given system: Messages > GET

21Proprietary and Confidential « I want to see the messages from my device. » Get the content of one message: Messages > GET

22Proprietary and Confidential « I want to see the stream of values sent from my device. » List the historical values for a given data of a system: Raw data > GET targetIds={system_uid}&dataIds={data_id}&access_token={token}

23Proprietary and Confidential « I want my device to execute a command. » Send a command to given system: Send commands & track operation > POST { "systems" : { "uids" : [“{system_uid}"] }, "commandId" : “{command_id}" } > POST { "systems" : { "uids" : [“{system_uid}"] }, "commandId" : “{command_id}" }

24Proprietary and Confidential « I want to validate the command has been received and executed. » Get the details of an operation Send commands & track operation > GET

25Proprietary and Confidential « I want to validate the command has been received and executed. » Get the details of an operation Track the "state" property to know if the operation is done Track the "state" property of the different "counters" to know if it worked or not Send commands & track operation > GET

26Proprietary and Confidential « I want to be notified when the temperature is above a threshold. » Configure an alert rule Setup the "Call URL" to enable webhook notifications Alerts & Webhooks

27Proprietary and Confidential Alerts & Webhooks

28Proprietary and Confidential AirVantage will send a request on the callback URL as soon as a new alert is generated Alerts & Webhooks > POST { "name":"event.alert.rule.triggered", "date": , "content": { "alert.uid":"f04a77e306de463e919ec39c387fa016", "rule.uid":"7316ee643b b61b8ac0afa824", "target.uid":"da687e2c39d54bc391633fa9c8d4c0da" } > POST { "name":"event.alert.rule.triggered", "date": , "content": { "alert.uid":"f04a77e306de463e919ec39c387fa016", "rule.uid":"7316ee643b b61b8ac0afa824", "target.uid":"da687e2c39d54bc391633fa9c8d4c0da" }

29Proprietary and Confidential « I want to analyze the data sent by my device.» Get aggregated values of data and multiple systems Available functions: mean, max, min, standard deviation, sum of squares, count, count of occurences Aggregated data (System) > GET targetIds={system_uid1},{system_uid2}… &dataIds={data_id1},{data_id2}… &fn={aggregation_function} &access_token={token}

30Proprietary and Confidential « I want to analyze the data sent by all my devices.» Get aggregated values for data of all the systems Aggregated data (Fleet) > GET targetIds={company_uid1} &dataIds={data_id1},{data_id2}… &fn={system_aggregation_function} &fleetFn={fleet_aggregation_function} &access_token={token}

31Proprietary and Confidential Possible data visualizations

32Proprietary and Confidential What’s next?

33Proprietary and Confidential API Reference Developer Guide Developer Forum GitHub API libraries, code samples, various examples Explore, interact & contribute