Skip to main content

02 - APIs & Webhooks

The most common usecase for many is building APIs and Webhooks. The initial part of the tutorial will focus on this.

These can be built from existing endpoints, shell commands, scripts, files etc. and chained with storing to a database or being ingested by another endpoint etc.

As we step through, you will be naturally exposed to how workflows, automations and command based utilities can be built.

Steps

1. HTTP GET API

In this simple example we will be creating a HTTP GET API where we will access the available query parameters. You may add or adjust the query parameters in the validation steps to see how the data is handled.

Deploy via Hosted / Managed

Deploy via Self Hosted / Unmanaged

  • A configs directory should have been created automatically for you, else create one.
  • Copy the below example config into your configs directory, eg.
        configs/02-http-get.yml
  • Stop/Start airpipe eg.
    ./airpipe server --api-key your-api-key --config-dir configs

Example Config

Deploy
HTTP GET API
loading...

Test

Hosted mode, either navigate to or curl:

  • The load configuration UI will automatically show you what your detected routes are, you can copy this for the next steps.

  • The link is automatically built with your organization uuid and environment, your API endpoints can be found here if required https://app.airpipe.io/configurations.

  • Update the route as necessary

curl https://app.airpipe.io/your_org_uuid/staging/tutorial/myroute?msg=hello

Self hosted mode, either navigate to or curl:

http://0.0.0.0:4111/tutorial/myroute?msg=hello

curl http://0.0.0.0:4111/tutorial/myroute?msg=hello

Response

{
"data": {
"CheckQueryParams": {
"data": {
"msg": "hello"
},
"time.ms": 3
}
}
}

2. HTTP POST API (Webhook)

In this simple example we will be creating a HTTP POST API where we will access data from the posted body. You may add or adjust the payload sent in the validation steps to see how the data is handled.

Deploy via Hosted / Managed

Deploy via Self Hosted / Unmanaged

  • A configs directory should have been created automatically for you, else create one.
  • Copy the below example config into your configs directory, eg.
        configs/02-http-post-webhook.yml
  • Stop/Start airpipe eg.
    ./airpipe server --api-key your-api-key --config-dir configs

Example Config

Deploy
HTTP POST API
loading...

Test

Hosted mode, curl or use your preferred API testing tool:

  • The load configuration UI will automatically show you what your detected routes are, you can copy this for the next steps.

  • The link is automatically built with your organization uuid and environment, your API endpoints can be found here if required https://app.airpipe.io/configurations.

  • Update the route as necessary

curl --location 'https://api.airpipe.io/your-org-uuid/staging/tutorial/webhook' \
--header 'Content-Type: application/json' \
--data '{
"message": "hello world",
"heroes": [
{
"name": "batman",
"identity": "bruce"
},
{
"name": "superman",
"identity": "clark"
}
]
}'

Self hosted mode, curl or use your preferred API testing tool:

curl --location 'http://0.0.0.0:4111/tutorial/webhook' \
--header 'Content-Type: application/json' \
--data '{
"message": "hello world",
"heroes": [
{
"name": "batman",
"identity": "bruce"
},
{
"name": "superman",
"identity": "clark"
}
]
}'

Response

{
"data": {
"CheckBody": {
"data": {
"heroes": [
{
"identity": "bruce",
"name": "batman"
},
{
"identity": "clark",
"name": "superman"
}
],
"message": "hello world"
},
"time.ms": 0
}
}
}