07/04/2014 NOBIL API. Version 3.0. Skåland Webservice Side 1 / 16



Similar documents
Performance Testing for Ajax Applications

General principles and architecture of Adlib and Adlib API. Petra Otten Manager Customer Support

Visualizing an OrientDB Graph Database with KeyLines

Contents. 2 Alfresco API Version 1.0

Up and Running with LabVIEW Web Services

Client Side Binding of Dynamic Drop Downs

Online signature API. Terms used in this document. The API in brief. Version 0.20,

Working with Indicee Elements

IoT-Ticket.com. Your Ticket to the Internet of Things and beyond. IoT API

The Norwegian Charging Station Database for Electromobility

Certified PHP/MySQL Web Developer Course

Advanced Web Development SCOPE OF WEB DEVELOPMENT INDUSTRY

Qualtrics Question API

Client-side Web Engineering From HTML to AJAX

Web Service Integration

XML Processing and Web Services. Chapter 17

Message from Danny Werfel, Controller, Office of Management and Budget to Agency Deputy Secretaries

Cloud Elements! Marketing Hub Provisioning and Usage Guide!

Dashboard Skin Tutorial. For ETS2 HTML5 Mobile Dashboard v3.0.2

Types of Cloud Computing

Visualizing a Neo4j Graph Database with KeyLines

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.

Art of Code Front-end Web Development Training Program

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010

A Tool for Evaluation and Optimization of Web Application Performance

WebSphere Business Monitor V7.0 Script adapter lab

Onset Computer Corporation

Fairsail REST API: Guide for Developers

GetLibraryUserOrderList

Web application Architecture

Quickstart guide to Configuring WebTitan

Working With Virtual Hosts on Pramati Server

CMSC434 TUTORIAL #3 HTML CSS JavaScript Jquery Ajax + Google AppEngine Mobile WebApp HTML5

ScanJour PDF 2014 R8. Configuration Guide

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0

Oracle Hyperion Financial Management Custom Pages Development Guide

SCCM Plug-in User Guide. Version 3.41

Implementing Mobile Thin client Architecture For Enterprise Application

Integration SDK (HTTP API)

Create interactive web graphics out of your SAS or R datasets

Programming in HTML5 with JavaScript and CSS3

Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON

Commerce Services Documentation

Web Services ( )

This presentation covers virtual application shared services supplied with IBM Workload Deployer version 3.1.

Example. Represent this as XML

(An) Optimal Drupal 7 Module Configuration for Site Performance JOE PRICE

PingFederate. Windows Live Cloud Identity Connector. User Guide. Version 1.0

The JSON approach is mainly intended for intranet integration, while the xml version is for machine to machine integration.

We automatically generate the HTML for this as seen below. Provide the above components for the teaser.txt file.

php-crypto-params Documentation

Chapter 12: Advanced topic Web 2.0

IBM Watson Ecosystem. Getting Started Guide

ISL Online Integration Manual

Rich-Internet Anwendungen auf Basis von ColdFusion und Ajax

Geofencing Extension API

Integrating KIMBIA form widget data with Google Analytics. What's Inside? KIMBIA. What s required...

Getting a Grip on CDN Performance Why & How.

KNX IP BAOS 771 / 772 / 777

WEB DEVELOPMENT COURSE (PHP/ MYSQL)

INFORMATION TECHNOLOGY STANDARD

Understanding KVK, the technical base of artlibraries.net

^/ CS> KRIS. JAMSA, PhD, MBA. y» A- JONES & BARTLETT LEARNING

Oracle Hyperion Financial Management Developer and Customization Guide

SmartSantander Open Data access using FI-WARE G.E. [ORION]

E*TRADE Developer Platform. Developer Guide and API Reference. October 24, 2012 API Version: v0

Integration Guide. Integrating Extole with Salesforce. Overview. Use Cases

Visualizing MongoDB Objects in Concept and Practice

FormAPI, AJAX and Node.js

The purpose of jquery is to make it much easier to use JavaScript on your website.

Cache All The Things

Office365Mon Developer API

Perl & NoSQL Focus on MongoDB. Jean-Marie Gouarné jmgdoc@cpan.org

Web Development using PHP (WD_PHP) Duration 1.5 months

Consuming and Producing Web Services with WST and JST. Christopher M. Judd. President/Consultant Judd Solutions, LLC

Cloud Elements ecommerce Hub Provisioning Guide API Version 2.0 BETA

PROPOSED SOLUTIONS FOR THE DESIGN & DEVELOPMENT OF COUPON WEBSITE

Google Analytics for Robust Website Analytics. Deepika Verma, Depanwita Seal, Atul Pandey

Accessing External Databases from Mobile Applications

InPost UK Limited GeoWidget Integration Guide Version 1.1

API documentation - 1 -

Technical Brief: Dynamic Number Insertion

MASTERTAG DEVELOPER GUIDE

API Reference Guide. API Version 1. Copyright Platfora 2016

PlayReady App Creation Tutorial

HTSQL is a comprehensive navigational query language for relational databases.

Implementation of Location based Services in Android using GPS and Web Services

Smartphone Application Development using HTML5-based Cross- Platform Framework

Implementing a Web-based Transportation Data Management System

Transcription:

NOBIL API Version 3.0 Skåland Webservice Side 1 / 16

Client API version 3.0 NOBIL is a comprehensive and trustworthy database covering all charging stations in Norway, and is open for other countries, too. Preliminary it is only Finland which has trustworthy data in NOBIL. Based on admission to the data, providers and clients can develop new and innovative services for promoting use of electric vehicles. What is an API? API stands for Application Programming Interface, and is a piece of software which enables the use of existing systems for a 3rd Party. How to use the client API By using http call with different parameters, you can ask the service to return charging station data. What is needed? Clients using the API call service have to register in NOBIL. The data required for registration are as follows: First name, last name Email address Mobile Number If available Website Address where service is to be run After the registration is approved by NOBIL, you will receive an API key. This key must be attached to each request against NOBIL API. This is to identify who uses the service and to ensure NOBIL's data and service. API key is a string. For those who use Google's APIs, this is familiar material. Currently this registration process is done here: http://nobil.no/bruk-use-api You must have made you familiar with the licensing text in order to use the charging station data from NOBIL, based on the Creative Commons 3.0 Unported Lisens. Ver 3.0. has a larger dataset both for charging stations and points. Availability data (status) are included where they are reported to NOBIL. In April 2014 we made a new real time stream API available. It makes it much easier to include real time data and reduce the traffic to our server. We advise you to use this together with the original API we describe in this document. Please look at the documentation for stream API here: https://github.com/nobil/nobil-stream-api An important change from Ver 1.1 to 3.0 is that all data s now are displayed in English. If a user has written data in his og hers native language in the database, those data will get back in that native language. Another new feature is that JSONP is a possible method of retrieving API data for all the Ajax functions. This makes it possible to get data via AJAX from different domains than NOBIL, without having to write a server side proxy functionality. Read more on JSONP here: http://en.wikipedia.org/wiki/json#jsonp Skåland Webservice Side 2 / 16

Server side proxy functionalities in services consuming the NOBIL API, could implement better caching mechanisms, which can result in better response and a better user experience. NOBIL's API supports both HTTP GET and HTTP POST requests for getting data. Search for charger stations via map references An example how to do this with AJAX and jquery: : 'POST', url: 'http://nobil.no/api/server/.php', data: { '': nobilapikey, 'apiversion': '3', '': "", '': 'rectangle', 'northeast': '(59.943921193288915, 10.826683044433594)', 'southwest': '(59.883683240905256, 10.650901794433594)', 'existingids': '189,195,199,89,48'}, datatype: 'json' Parameter APIkey_that_You_have_received_from_Nobil.n o existingids 189,195,199,89,48,190,58,77,83,75,63,64,86,18 1,207,182,180 A list of charger station id's that you don't want back from the server, cause you already have received those and stored them in client store. This is done for saving bandwidth and increase the speed of showing and navigating in online maps like Google Maps. northeast (59.943921193288915, 10.826683044433594) southwest (59.883683240905256, 10.650901794433594) Rectangle json or xml Skåland Webservice Side 3 / 16

API service response from map area The response content from this of is json object. Example of a JSON object from the server: [{"Provider":"NOBIL.no","Rights":"Creative Commons 3.0 Unported License","apiver":"3", "chargerstations": [{"csmd": {"id":41,"name":"ikea Slependen","url":"http:\/\/www.ladestasjoner.no\/2010\/06\/ikeaslependen_08.html","blogpostid":"3599822862656171588","Active":true,"Street":"Nesbruveien ","House_number":"40","Zipcode":"1396","City":"BILLINGSTAD","Municipality_ID":"0220","Municipality":"ASKER","County_ID":"0 2","County":"Akershus","Description_of_location":"Tre plasser i parkeringshuset P1, rett til h\u00f8yre etter innkj\u00f8ring. Slependen. Det finnes ogs\u00e5 3 ladeplasser p\u00e5 omr\u00e5de L, n\u00e6rmest \"utgang\" i P- kjelleren.","owned_by":"ikea","number_charging_points":6,"position":"(59.87447,10.49982)","image":"41.jpg","available_chargi ng_points":6,"user_comment":"","contact_info":"48050000 - kar fra IKEA som ringte om videre utbygging.","created":"2010-03- 24 10:24:13","Created_by":4,"Created_by_Forename":"nobilAdmin","Created_by_Surname":"nobilAdmin","Updated":"2011-04- 15 12:19:20","Updated_by":5,"Updated_by_Forename":"Hans H.","Updated_by_Surname":"Kvisle","Station_status":1,"Land_code":"nor","International_id":"NOR_00041"}, "attr": {"st":{"24":{"attrid":"24","attrname":"open 24h","attrvalid":"1","trans":"Yes","attrval":"true"},"21":{"attrid":"21","attrname":"Real-time information","attrvalid":"2","trans":"no","attrval":""},"22":{"attrid":"22","attrname":"public funding","attrvalid":"4","trans":"none","attrval":""},"7":{"attrid":"7","attrname":"parking fee","attrvalid":"2","trans":"no","attrval":false},"6":{"attrid":"6","attrname":"time limit","attrvalid":"2","trans":"no","attrval":""},"3":{"attrid":"3","attrname":"location","attrvalid":"4","trans":"shopping center","attrval":""},"2":{"attrid":"2","attrname":"availability","attrvalid":"1","trans":"public","attrval":""}}, "conn":{"1":{"attrid":"1","attrname":"accessability","attrvalid":"1","trans":"open","attrval":""},"4":{"attrid":"4","attrname":"co nnector","attrvalid":"14","trans":"schuko CEE 7\/4","attrval":""},"5":{"attrid":"5","attrname":"Charging capacity","attrvalid":"7","trans":"230v 1-phase max 16A","attrval":""},"17":{"attrid":"17","attrname":"Vehicle ","attrvalid":"1","trans":"all vehicles","attrval":""},"20":{"attrid":"20","attrname":"charge mode","attrvalid":"1","trans":"mode 1","attrval":""},"18":{"attrid":"18","attrname":"Reservable","attrvalid":"2","trans":"No","attrval":""},"25":{"attrid":"25","attrna me":"fixed cable","attrvalid":"2","trans":"no","attrval":""}}}}] Skåland Webservice Side 4 / 16

Cross domain Ajax - JSONP Example of how this can be implemented across different domains using Ajax and JSONP and jquery: url: 'http://nobil.no/api/server/.php', data: {'': nobilapikey, 'apiversion': '3', '': "", '': 'rectangle', 'northeast': bound.getnortheast(), 'southwest': bound.getsouthwest(), 'existingids': idlist}, success: parsejsonresponse, datatype: 'jsonp' Parameter APIkey_that_You_have_received_from_Nobil.n o existingids 189,195,199,89,48,190,58,77,83,75,63,64,86,18 1,207,182,180 A list of charger station id's that you don't want back from the server, cause you already have received those and stored them in client store. This is done for saving bandwidth and increase the speed of showing and navigating in online maps like Google Maps. northeast (59.943921193288915, 10.826683044433594) southwest (59.883683240905256, 10.650901794433594) Rectangle json or xml Skåland Webservice Side 5 / 16

Service response from rectangle map The response from the service is of the jsonp object. This object is encapsulated in a callback method that is given by the client to the method as a parameter. In the request seen above, this function is called «parsejsonresponse». Response example for the above request: jsonp1300629903865([{"id":228,"active":true,"name":"statens arbeidsmilj\u00f8institutt, Oslo","address":"Gydasvei 8","zip":"0383","city":"OSLO","municipalityid":"0301","municipality":"OSLO","countyid":"03","county":"Oslo","di scription":"","place":"street","accessibility":"visitors","owner":"statens arbeidsmilj\u00f8institutt","chargerpointnumber":4,"parkingfee":false,"timelimit":9,"chargerspeed":"16a","geol ocation":"(59.93255,10.71514)","constructionsupportname":"oslo kommune","image":"228.jpg","usercomment":"tilgjengelig 07-16.00","contactinfo":"Statens arbeidsmilj\u00f8institutt\r\nsteinar Messel\r\nsteinarm@stami.no\r\n23195153","created":"2010-04-14 12:55:02","createdbygivenname":"Hans H.","createdbyfamilyname":"Kvisle","updated":"2010-06-04 09:56:44","updatedbygivenname":"Hans H.","updatedbyfamilyname":"Kvisle","access":"Standard key","url":"http:\/\/www.ladestasjoner.no\/2010\/07\/statens-arbeidsmiljinstituttoslo_06.html","countrycode":"no"}]); Skåland Webservice Side 6 / 16

Get all data on a given charger station Example implementation done with Ajax and jquery: This example gets all data on charger station with id: NOR_00171 : 'POST', url: 'http://nobil.no/api/server/.php', data: { '': nobilapikey, 'apiversion': '3', '': "", '':'id', 'id': 'NOR_00171' }, success: printjsonresponse, datatype: 'json' Parameters API key id Callback function on success id NOR_00171 printjsonresponse json or xml The function below gets called if the request returns data of JSON. The function iterates over all object values an adds these to a string. This string then gets displayed in a html div with ID= jsonoutput. function printjsonresponse(data, textstatus, XMLHttpRequest){ jquery("#jsonoutput").html(dump(data)); } function dump(arr,level) { var dumped_text = ""; if(!level) level = 0; //The padding given at the beginning of the line. var level_padding = ""; for(var j=0;j<level+1;j++) level_padding += " "; if(of(arr) == 'object') { //Array/Hashes/Objects Skåland Webservice Side 7 / 16

for(var item in arr) { var value = arr[item]; } if(of(value) == 'object') { //If it is an array, dumped_text += level_padding + "'" + item + "'...\n"; dumped_text += dump(value,level+1); } else { dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n"; } } } else { //Stings/Chars/Numbers etc. dumped_text = "===>"+arr+"<===("+of(arr)+")"; } return dumped_text; Skåland Webservice Side 8 / 16

Retrieving statistics for charger stations The following statistics method can be used: stats_totalsallcounties Gets the total count of active charger stations grouped by counties. : 'POST', url: 'http://nobil.no/api/server/.php', data: { '': nobilapikey, 'apiversion': '3', '': "", '':'stats_totalsallcounties', 'countrycode':'no' }, success: printjsonresponse, datatype: 'json' Parameters API key stats_totalsallcounties countrycode NO (ISO 639-1) Callback function on success json or xml (default json) printjsonresponse Skåland Webservice Side 9 / 16

stats_totalsbycountyid Gets the total count of active charger stations for a given county specified by county id. (11=Rogaland) : 'POST', url: 'http://nobil.no/api/server/.php', data: { '': nobilapikey, 'apiversion': '3', '': "", '':'stats_totalsbycountyid', 'id': '11', 'countrycode':'no' }, success: printjsonresponse, datatype: 'json' Parameters API key stats_totalsbycountyid id 11 countrycode NO (ISO 639-1) Callback function on success json or xml (default json) printjsonresponse Skåland Webservice Side 10 / 16

stats_detailedtotalsbycountyid Gets the total count of active charger stations for a given county grouped by municipality specified by county id. (11=Rogaland) : 'POST', url: 'http://nobil.no/api/server/.php', data: { '': nobilapikey, 'apiversion': '3', '': "", '':'stats_detailedtotalsbycountyid', 'id': '11', 'countrycode':'no' }, success: printjsonresponse, datatype: 'json' Parameters API key stats_detailedtotalsbycountyid id 11 countrycode NO (ISO 639-1) Callback function on success json or xml (default json) printjsonresponse Skåland Webservice Side 11 / 16

stats_totalsbymunicipalid Gets the total count of active charger stations for a given municipality specified by municipality id. (1103=Stavanger) : 'POST', url: 'http://nobil.no/api/server/.php', data: { '': nobilapikey, 'apiversion': '3', '': "", '':'stats_totalsbymunicipalid', 'id': '1103', 'countrycode':'no' }, success: printjsonresponse, datatype: 'json' Parameters API key stats_totalsbymunicipalid id 11 countrycode NO (ISO 639-1) Callback function on success json or xml (default json) printjsonresponse Skåland Webservice Side 12 / 16

stats_detailtotalsbymunicipalid Gets the total count of active charger stations for all zip codes for a given municipality specified by municipality id. (1103=Stavanger) : 'POST', url: 'http://nobil.no/api/server/.php', data: { '': nobilapikey, 'apiversion': '3', '': "", '':'stats_detailtotalsbymunicipalid', 'id': '1103', 'countrycode':'no' }, success: printjsonresponse, datatype: 'json' Parameters API key stats_detailtotalsbymunicipalid id 11 countrycode NO (ISO 639-1) Callback function on success json or xml (default json) printjsonresponse Skåland Webservice Side 13 / 16

The nearest charger station Gets the 10 closest charger stations which are within 2000 meters, ordered by meters, nearest first. : 'POST', url: 'http://nobil.no/api/server/.php', data: { '': nobilapikey, 'apiversion': '3', '': "", '':'near', 'lat':'59.91673', 'long': '10.74782', 'distance': '2000', 'limit': '10' }, success: printjsonresponse, datatype: 'json' Parameters API key near lat 59.91673 long 10.74782 distance 2000 (metre) json or xml (default json) Callback function on success printjsonresponse Skåland Webservice Side 14 / 16

NOBIL Data Export URL: http://nobil.no/api/server/datadump.php Parameters countrycode (optional) API key fromdate (optional) 2012-06-02 NOR (if no parameter is submitted to the server, all data from all countries is returned) file callback (function on success) json (default format is XML) false (default value is 'true', which returns a file, rather than the text stream) PrintJsonResponse (wrapping data via jsonp) URL examples: http://nobil.no/api/server/datadump.php?=2048b60b804ac019155675421c0ddb13&countryc ode=nor&fromdate=2012-06-02&format=xml&file=false http://nobil.no/api/server/datadump.php?=2048b60b804ac019155675421c0ddb13 http://nobil.no/api/server/datadump.php?=2048b60b804ac019155675421c0ddb13&fromdate =2012-06-02&file=false&callback=mycallback&format=json Skåland Webservice Side 15 / 16

Example implementation Demonstration of these examples can be found here: http://www.nobil.no/api/client/_apiver3.php Attribute reference An overview of all attributes and valid values can be found here: http://nobil.no/admin/attributes.php NOBIL real time stream API In April 2014 we made a new real time stream API available. It makes it easier to include real time data in your services, and it will reduce the traffic on our server when the collection of real time data is separated from the ordinary API which is more suitable for static data. We advise you to use the real time stream API together with the original API. Please look at the documentation for stream API here: Skåland Webservice Side 16 / 16