Skip to main content

05 - Transform & Extract Data

In this section we will look at transforming and extracting data to clean up our output data.

Transforms

View the available transform functions here.

They also include generating passwords, blowfish encryption, JWT creation and more. We are actively expanding these features please reach out if you need something!

Steps

1. HTTP GET API with data modification

In this simple example we will be creating a HTTP GET API where we will fetch some data and then modify it before returning it back.

We will show case extracting data, modifying data, and adding new data.

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/05-http-get-modify.yml
  • Stop/Start airpipe eg.
    ./airpipe server --api-key your-api-key --config-dir configs

Example Config

Deploy
HTTP GET API with Input Validation
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://api.airpipe.io/your_org_id/staging/tutorial/modify

Self hosted mode, either navigate to or curl:

http://0.0.0.0:4111/tutorial/modify

curl http://0.0.0.0:4111/tutorial/modify

Response

{
"data": {
"CleanUpFirstUserData": {
"data": {
"company": {
"bs": "harness real-time e-markets",
"catchPhrase": "Multi-layered client-server neural-net",
"name": "Romaguera-Crona"
},
"email": "Sincere@april.biz",
"full_name": "Leanne Graham",
"id": 1,
"username": "Bret",
"website": "hildegard.org"
},
"time.ms": 36
},
"GetFirstUserAddress": {
"data": {
"city": "Gwenborough",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
},
"new_key": "someNewValue",
"street": "Kulas Light",
"suite": "Apt. 556",
"zipcode": "92998-3874"
},
"time.ms": 38
},
"GroupPostsByUserId": {
"data": {
"1": [
{
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto",
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"userId": 1
},
{
"body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla",
"id": 2,
"title": "qui est esse",
"userId": 1
},
{
"body": "et iusto sed quo iure\nvoluptatem occaecati omnis eligendi aut ad\nvoluptatem doloribus vel accusantium quis pariatur\nmolestiae porro eius odio et labore et velit aut",
"id": 3,
"title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
"userId": 1
},
{
"body": "ullam et saepe reiciendis voluptatem adipisci\nsit amet autem assumenda provident rerum culpa\nquis hic commodi nesciunt rem tenetur doloremque ipsam iure\nquis sunt voluptatem rerum illo velit",
"id": 4,
"title": "eum et est occaecati",
"userId": 1
},
{
"body": "repudiandae veniam quaerat sunt sed\nalias aut fugiat sit autem sed est\nvoluptatem omnis possimus esse voluptatibus quis\nest aut tenetur dolor neque",
"id": 5,
"title": "nesciunt quas odio",
"userId": 1
},
{
"body": "ut aspernatur corporis harum nihil quis provident sequi\nmollitia nobis aliquid molestiae\nperspiciatis et ea nemo ab reprehenderit accusantium quas\nvoluptate dolores velit et doloremque molestiae",
"id": 6,
"title": "dolorem eum magni eos aperiam quia",
"userId": 1
},
{
"body": "dolore placeat quibusdam ea quo vitae\nmagni quis enim qui quis quo nemo aut saepe\nquidem repellat excepturi ut quia\nsunt ut sequi eos ea sed quas",
"id": 7,
"title": "magnam facilis autem",
"userId": 1
},
{
"body": "dignissimos aperiam dolorem qui eum\nfacilis quibusdam animi sint suscipit qui sint possimus cum\nquaerat magni maiores excepturi\nipsam ut commodi dolor voluptatum modi aut vitae",
"id": 8,
"title": "dolorem dolore est ipsam",
"userId": 1
},
{
"body": "consectetur animi nesciunt iure dolore\nenim quia ad\nveniam autem ut quam aut nobis\net est aut quod aut provident voluptas autem voluptas",
"id": 9,
"title": "nesciunt iure omnis dolorem tempora et accusantium",
"userId": 1
},
{
"body": "quo et expedita modi cum officia vel magni\ndoloribus qui repudiandae\nvero nisi sit\nquos veniam quod sed accusamus veritatis error",
"id": 10,
"title": "optio molestias id quia eum",
"userId": 1
}
],
"2": [
{
"body": "delectus reiciendis molestiae occaecati non minima eveniet qui voluptatibus\naccusamus in eum beatae sit\nvel qui neque voluptates ut commodi qui incidunt\nut animi commodi",
"id": 11,
"title": "et ea vero quia laudantium autem",
"userId": 2
},
{
"body": "itaque id aut magnam\npraesentium quia et ea odit et ea voluptas et\nsapiente quia nihil amet occaecati quia id voluptatem\nincidunt ea est distinctio odio",
"id": 12,
"title": "in quibusdam tempore odit est dolorem",
"userId": 2
},
{
"body": "aut dicta possimus sint mollitia voluptas commodi quo doloremque\niste corrupti reiciendis voluptatem eius rerum\nsit cumque quod eligendi laborum minima\nperferendis recusandae assumenda consectetur porro architecto ipsum ipsam",
"id": 13,
"title": "dolorum ut in voluptas mollitia et saepe quo animi",
"userId": 2
},
{
"body": "fuga et accusamus dolorum perferendis illo voluptas\nnon doloremque neque facere\nad qui dolorum molestiae beatae\nsed aut voluptas totam sit illum",
"id": 14,
"title": "voluptatem eligendi optio",
"userId": 2
},
{
"body": "reprehenderit quos placeat\nvelit minima officia dolores impedit repudiandae molestiae nam\nvoluptas recusandae quis delectus\nofficiis harum fugiat vitae",
"id": 15,
"title": "eveniet quod temporibus",
"userId": 2
},
{
"body": "suscipit nam nisi quo aperiam aut\nasperiores eos fugit maiores voluptatibus quia\nvoluptatem quis ullam qui in alias quia est\nconsequatur magni mollitia accusamus ea nisi voluptate dicta",
"id": 16,
"title": "sint suscipit perspiciatis velit dolorum rerum ipsa laboriosam odio",
"userId": 2
},
{
"body": "eos voluptas et aut odit natus earum\naspernatur fuga molestiae ullam\ndeserunt ratione qui eos\nqui nihil ratione nemo velit ut aut id quo",
"id": 17,
"title": "fugit voluptas sed molestias voluptatem provident",
"userId": 2
},
{
"body": "eveniet quo quis\nlaborum totam consequatur non dolor\nut et est repudiandae\nest voluptatem vel debitis et magnam",
"id": 18,
"title": "voluptate et itaque vero tempora molestiae",
"userId": 2
},
{
"body": "illum quis cupiditate provident sit magnam\nea sed aut omnis\nveniam maiores ullam consequatur atque\nadipisci quo iste expedita sit quos voluptas",
"id": 19,
"title": "adipisci placeat illum aut reiciendis qui",
"userId": 2
},
{
"body": "qui consequuntur ducimus possimus quisquam amet similique\nsuscipit porro ipsam amet\neos veritatis officiis exercitationem vel fugit aut necessitatibus totam\nomnis rerum consequatur expedita quidem cumque explicabo",
"id": 20,
"title": "doloribus ad provident suscipit at",
"userId": 2
}
]
}
}
}
}