Parking APIs Introduction

Nwave provides four APIs to its clients. There are two main types of APIs – Push and Pull.

  1. Data is retrieved by a client from the source in Pull APIs.

  2. Data is sent by the source to a client in Push APIs.

Nwave’s APIs are based on three technologies

  1. HTTP

  2. AMQP

  3. GraphQL

Type

Technology

API

Advantages

Disadvantages

Typical applications

Type

Technology

API

Advantages

Disadvantages

Typical applications

Push

HTTP

  • Simple

  • Common

  • Real-time updates

  • Limited performance at scale

  • Transformation of occupancy information to parking sessions is necessary

  • Unordered message delivery

  • Raw sensor data transfer between backend systems

  • It is good for quick proof of concept demo integrations and tests

AMQP

  • Fast

  • Reliable

  • Scalable

  • Real-time updates

  • FIFO message delivery

  • Requires setup and configuration of the RabbitMQ Server

  • Robust message bus between high load backend systems

  • Commercial billing information / SDI

Pull

HTTP

  • Simple

  • Fast response (<1s)

  • Quick setup

  • Does not support real-time occupancy status updates

  • Query-based method to get data when it is required, e.g. loading a page about a parking space, group or zone occupancy

Parking Analytics API

  • Simple integration

  • Flexible reports

  • Reports for the period of time

  • Response data is ready to showing on charts

  • More complex than REST Occupancy API

  • Flexibility of reports leads to slower request processing

  • Allows to build your own parking analytics dashbords with wide range of filtration and grouping abilities

Push & Pull

GraphQL

  • Flexible

  • Traffic-Efficient

  • Real-time updates

  • Relatively new and less common

  • Modern and large user-based web and mobile apps

  • Real-time dashboards

 

HTTP Caller

Diagram:

HTTP Caller API is one of the simplest types of API but provides little functionality to users. This API sends HTTP requests to your configured endpoints. HTTP requests are formed based on raw sensor events. During downtime, Nwave’s cloud will make at up to 100 retries for each request which can lead to high traffic spikes.

More details about this API can be found here HTTP Caller.

RabbitMQ RTA & Sessions

Diagram:

Rabbit MQ is an enterprise-grade message bus that separates the application from transport layers. For example, RabbitMQ lets you set up messaging politics according to your preferences (e.g. you can configure a period and volume of message retention on a RabbitMQ server in case your service is offline).

Nwave provides two types of parking data through RabbitMQ:

RabbitMQ RTA (Real-Time Availability) gives you enriched parking occupancy information about every parking event. This lets you receive comprehensive application occupancy data for unmarked bays (when one car can occupy more than one sensor).

RabbitMQ Parking Session Logging saves your time and resources on developing and maintaining the code for storing occupancy history. RabbitMQ session is logging data which is already enriched by Nwave cloud (for marked and unmarked bays): session start, end time, session restoration in case of partial message loss and SDI data.

More details about these API can be found here:RabbitMQ.

REST Occupancy

REST Occupancy API is the API for retrieving real-time parking availability through simple HTTP requests.

This API provides a wide spectrum of query filters. You can use this API directly in your Web and Mobile Apps to:

  • Display occupancy around a user on the map

  • Recommend the nearest available parking spaces

More details about this API can be found here: REST Occupancy API.

GraphQL Occupancy

GraphQL Occupancy API provides the same functionality as Occupancy REST API (see above). But there are a few differences, which are very significant for Mobile Apps and other low-latency applications.

  1. GraphQL API provides real-time occupancy updates on end-user devices. The application is able to subscribe to occupancy changes within a specified geospatial area.

  2. GraphQL API allows you to request specific fields of an object which can significantly reduce traffic and increase speed.

More details about this API can be found here: GraphQL Occupancy API.

 

Â