Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

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

Push

HTTP

HTTP Caller

  • Simple

  • Common

  • Real-time updates

  • Limited performance at scale

  • Transformation of occupancy information to parking sessions is necessary

  • Raw sensor data transfer between backend systems

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

AMQP

RabbitMQ RTA & Sessions

  • Fast

  • Reliable

  • Scalable

  • Real-time updates

  • Requires setup and configuration of the RabbitMQ Server

  • Robust message bus between high load backend systems

  • Commercial billing information / SDI

Pull

HTTP

REST Occupancy

  • Simple

  • Common

  • Quick setup

  • Not suitable for real-time applications

  • Generates a lot of traffic and excessive server load when pulled frequently

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

Push & Pull

GraphQL

GraphQL Occupancy

  • 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

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.

RabbitMQ RTA & Sessions

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.

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

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.

  • No labels