Create REST APIs

Introduction

You can use any URL you defined as a HTTP REST endpoint. API enforces HTTPS (TLS) i.e. encrypt your data end to end for maximum safety. API Gateway supports GET, POST, PUT and DELETE HTTP request methods

Authentication

Token based API authentication are supported for the time being. Token is used in the Authorization header for App/Device backends where HTTP headers can be specified. Otherwise token can be used with URL query parameters. However, latter method is not encouraged unless your app is frontend only i.e. static webapp.

All request must be submitted using HTTPS to avoid compromising your token.

Authorization

If your App/Device has a separate backend, it is highly recommended to whitelist your Domain or IP address of your servers.

Auth header

When using HTTP REST API without the SDK, for HTTP Basic authentication you need to use username and password separated by a single colon (":") character within a base64 encoded string in the credentials. Here you must leave the username blank and specify the token as password field of the HTTP Basic Auth header.

In plain HTTP, that is

Authorization: Basic  Base64 encoded :YOUR_TOKEN

Success Status

Status Code / Text Description
200 OK Request is success
201 Created Request is success & resource is created
202 Accepted Request is accepted for processing
204 No Content Delete/Update operation success & no content

Error Conditions

Status Code / Text Description
400 Bad Request If the request has invalid data or parameters
401 Unauthorized Either your Auth token is invalid or expired.
403 Forbidden Requested endpoint is invalid or method not allowed
404 Not Found Request entity/data is not found
412 Precondition Failed
413 Payload Too Large If the request has large payload thant the allowed limit.
415 Unsupported Media Type If the media type of the request is not application/json
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server side failure, either due to your ICApp or server side error.
503 Service Unavailable Service is unavailable due to unavoidable reason
520 Unknown Error If unknown error has occurred

Query Parameters

Your API can have query parameters

HTTP REST Endpoints

URI Base

All REST API need to prefixed with the following URI base path: /api/v1/agw and so the Endpoint URI always start with https://cs.rapidomize.com/api/v1/agw and based on your ICApp ID the API endpoint has following pattern:

https://cs.rapidomize.com/api/v1/agw/{icappId}

e.g. if your ICApp ID is cfba0c2c-5f61-4866-a3ed-4c2e56f745e7 then the Endpoint URI starts with https://cs.rapidomize.com/api/v1/agw/cfba0c2c-5f61-4866-a3ed-4c2e56f745e7

OpenAPI 3.0 specification

OpenAPI 3.0 specification for your API can be retrieved from the endpoint:

https://cs.rapidomize.com/api/v1/agw/{icappId}/openapi.json

So for the above example ICApp ID, your OpenAPI 3.0 specification si available at:

https://cs.rapidomize.com/api/v1/agw/cfba0c2c-5f61-4866-a3ed-4c2e56f745e7/openapi.json

REST API Endpoints

All your REST API Endpoints need to be prefixed with URI Base. For example if you have defined and API path to retrieve customers data based on their ID and your REST endpoint path pattern is customer/{id}, then the Customer Endpoint path for the above ICApp ID is:

https://cs.rapidomize.com/api/v1/agw/cfba0c2c-5f61-4866-a3ed-4c2e56f745e7/customer/{id}

Base on the HTTP REST specification you could use each HTTP method to build CRUD (create, retrieve, update, delete) API or for other operations. In general here is a guideline for each HTTP method:

GET - Retrieve Entities/Data

API allows you to retrieve Entities/Data from a Action(s) source, for example database or spreadsheet connected in your ICApp e.g.

  • Retrieve a customer by ID: /customer/{id}
  • Retrieve a list of all customers: /customer
  • Retrieve a list of customers with paging enabled by using query params: /customer?pg=5&psz=10 where example parameters specify pg - page 5 & psz - page size 10

POST - Create or Push Entities/Data

API allows you to create new Entities or send Data to a destination Action(s) connected in your ICApp e.g.

  • Create customer: /customer with data:
{
   id: '123-xyz' 
   name: 'Tom Hanks', 
   addr: '123 Main St., ....',
   contact: '123456789'
   ...
}

PUT - Update Entities/Data

API allows you to update specified entities or send updated Data to a destination Action(s) connected in your ICApp e.g.

  • update customer with ID: /customer/{id}
    {
       name: 'Tom Hanks', 
       addr: '...',
       contact: '9999999999'
       ...
    }

DELETE - Delete Entities/Data

API allows you to delete Entities or send delete request to a destination Action(s) connected in your ICApp e.g.

  • delete customer with ID: /customer/{id}

Client SDK

You can access the REST API directly or use the sdk for convenience. Depending on your application language of choice you can find client SDK at GitHub

Language SDK
Java Java SDK
Javascript Javascript SDK
Node.js Node.js SDK
Python Python SDK
C/C++ C/C++ SDK
Ruby Ruby SDK

Rapidomize Function

Rapidomize Function is a serverless service for running code without having to provision or manage servers.

Last modified August 17, 2022