3.2.1 • Published 8 months ago

@runnerty/executor-http v3.2.1

Weekly downloads
3
License
MIT
Repository
github
Last release
8 months ago

NPM version Downloads

Executor for Runnerty: HTTP

Installation:

Through NPM

npm i @runnerty/executor-http

You can also add modules to your project with runnerty

npx runnerty add @runnerty/executor-http

This command installs the module in your project, adds example configuration in your config.json and creates an example plan of use.

If you have installed runnerty globally you can include the module with this command:

runnerty add @runnerty/executor-http

Configuration sample:

Add in config.json:

{
  "id": "http_default",
  "type": "@runnerty-executor-http"
}

Plan sample:

Add in plan.json:

{
  "id": "http_default",
  "headers": { "User-Agent": "runnerty" },
  "method": "get",
  "url": "https://api.github.com/search/repositories",
  "params": { "q": "runnerty" },
  "responseType": "json"
}
{
  "id": "http_default",
  "headers": { "User-Agent": "runnerty" },
  "url": "http://www.sample.com/form",
  "method": "post",
  "data": {
    "key1": "value1",
    "key2": "value2"
  },
  "responseType": "json",
  "withCredentials": true
}
{
  "id": "http_default",
  "headers": { "User-Agent": "runnerty" },
  "url": "http://www.sample.com/uploadfile",
  "method": "post",
  "files": [
    { "name": "fileOne", "path": "/var/myfile.txt" },
    { "name": "fileTwo", "path": "/var/www/runnerty.jpg" }
  ],
  "responseType": "json",
  "returnHeaderDataOutput": true
}
{
  "id": "http_default",
  "headers": { "User-Agent": "runnerty", "Content-Type": "application/xml" },
  "method": "post",
  "url": "https://sample.com/api-sample",
  "auth": {
    "username": "@GV(MY_USER_AUTH)",
    "password": "@GV(MY_PASS_AUTH)"
  },
  "data": "@GV(SAMPLE_BODY)"
}

Pagination:

It is possible to make calls to APIs that return JSON data that requires paging. The parameters available for paging are.

ParameterDescription
startpage from which the query is initiated, by default 1
limitmaximum elements per page
pagestotal pages to consult
totaltotal items for automatic page calculation
total_from_headerheader from which to get the total of items for automatic page calculation
total_from_responseparams path of the response data from which to get the total of items for automatic page calculation
next_page_url_from_responseparams path of the response data from which to get the url for the next page
token.query_param_namename of parameter to send in url query with token of next page
token.data_param_namename of the parameter to be sent in the body with the token of next page
token.next_token_from_responseparams path of the response data from which to get the next page token
token.next_token_from_headerparams path of the header data from which to get the next page token

Some paginations examples:

{
  "id": "http_default",
  "method": "get",
  "url": "https://endpoint.sample.com/items",
  "pagination": {
    "limit": "2000",
    "total_from_header": "x-total-items"
  },
  "responseType": "json",
  "responseToFile": "/var/www/data/sample.json",
  "noReturnDataOutput": true
}
{
  "id": "http_default",
  "method": "get",
  "url": "https://endpoint.sample.com/items",
  "pagination": {
    "limit": "2000",
    "next_page_url_from_response": "paging.nextPage"
  },
  "responseType": "json",
  "responseToFile": "/var/www/data/sample.json",
  "noReturnDataOutput": true
}
{
  "id": "http_default",
  "method": "get",
  "url": "https://endpoint.sample.com/items",
  "pagination": {
    "limit": "2000",
    "token": {
      "next_token_from_response": "paging.continuationToken",
      "query_param_name": "nextPageToken"
    }
  },
  "responseType": "json",
  "responseToFile": "/var/www/data/sample.json",
  "noReturnDataOutput": true
}

Output (Process values):

  • PROCESS_EXEC_DATA_OUTPUT: Response output data. It is possible to return the header response in dataoutput by activating the returnHeaderDataOutput (boolean) parameter
  • EXTRA_DATA: If the response is a JSON it is possible to work with the parsed values of the response using the "responseType": "json" parameter. If we receive for example:
{
  "planet": {
    "name": "Mars",
    "satellites": [
      {
        "name": "phobos"
      },
      {
        "name": "deimos"
      }
    ]
  }
}

It is possible to access the values by (GETVALUE function): PROCESS_EXEC_PLANET_NAME: "Mars", PROCESS_EXEC_PLANET_NAME_SATELLITES_1_NAME:"phobos"

  • PROCESS_EXEC_ERR_OUTPUT: Error output message.

Other considerations

If the result is very large, you should consider using the "noReturnDataOutput" (boolean) property to prevent a large amount of data from entering memory and being interpreted by Runnerty, which could cause performance problems.

{
  "id": "http_default",
  "headers": { "User-Agent": "runnerty" },
  "method": "get",
  "url": "http://host.com/big_file.zip",
  "responseToFile": "/etc/runnerty/big_file.zip",
  "noReturnDataOutput": true
}
3.2.1

8 months ago

3.1.2

2 years ago

3.2.0

2 years ago

3.1.1

2 years ago

3.1.0

2 years ago

3.0.6

2 years ago

3.0.5

3 years ago

3.0.4

3 years ago

3.0.3

3 years ago

3.0.2

3 years ago

3.0.1

3 years ago

3.0.0

3 years ago

2.2.1

4 years ago

2.2.0

4 years ago

2.2.0-rc1

4 years ago

2.2.0-rc

4 years ago

2.1.0

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.3.0

5 years ago

1.2.0

6 years ago

1.1.0

6 years ago

1.0.2

6 years ago

1.0.1

7 years ago

1.0.0

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago