Nwave provides four APIs to its clients. There are two main types of APIs – Push and Pull. Data is retrieved by a client from the source in Pull APIs. Data is sent by the source to a client in Push APIs. Nwave’s APIs are based on three technologies HTTP, AMQP and GraphQL.
Type | Protocol | API | Advantages | Disadvantages |
---|---|---|---|---|
Push | HTTP | HTTP Caller |
|
|
AMQP | RabbitMQ Occupancy & Sessions |
|
| |
Pull | HTTP | REST Occupancy |
|
|
Push & Pull | HTTP | GraphQL Occupancy |
|
|
HTTP Caller
HTTP Caller API is one of the simplest types of API but provides little functionality and flexibility 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 Occupancy & 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).
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 spaces 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, which lets you use Nwave API directly in your Web and Mobile Apps for showing occupancy on the map or recommending the nearest available parking spaces around a user.
GraphQL Occupancy
GraphQL Occupancy API provides the same functions as Occupancy REST API (see above). But there are a few differences, which are very significant for Mobile Apps and other low-latency applications.
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.
GraphQL API allows you to request specific fields of an object which can significantly reduce traffic and increase speed.