Paginated API GET
Call a custom API GET endpoint which returns a list, keeping all rows while a condition holds
Ingredient Family: rowActionsIngredients
Outline Display: Call the GET endpoint named {{endpoint}} of {{apiName}} with the mapping: {{mapping}}. Gather up rows so long as {{while}} remains True.
Details
A page that does not come back fails the action rather than aborting the page it was triggered from, and stops the walk: no further pages are asked for, and what earlier pages’ rows already did stands. If the api’s provider requires a login and no credential is connected for this caller in this context, the step fails with a not-connected message naming connecting the service as the fix, and nothing is sent. A page the api refuses with HTTP 401 or 403 fails as unauthorized (sign in to that service again); any other refusal, and a host that cannot be reached, fail as a malfunction. The mapping may be omitted when the row already carries the endpoint’s arguments under their own names: an argument no entry names is filled from the row’s column of that name, so a mapping spells only what it renames or computes. A file or point argument is never filled that way and always needs its own entry. Inside a tool’s row action an argument no column supplies is not an error: it becomes a new argument of the tool, described from the endpoint argument it feeds, so a name meant to match a column and missing it silently grows an argument the caller must fill.
Local scope
The parent slot binds these (look up the slot in the parent to see how):
$table– The table to act on
Names introduced within this component’s knobs:
inputTable– request shape ofendpoint(chosen underapiName)outputTable– response shape ofendpoint(chosen underapiName)mappingResult– empty table populated by ingredientsNULL– empty table populated by ingredientstempTable– empty table populated by ingredients
Settings
Required
-
apiName: API connection
the API the endpoint is part of
Set this to thenameof any top-levelapi:item (or the inlineapi:block on a service/authenticator). -
endpoint: endpoint ofapiName
the endpoint to send the GET request to
Set this to theNameof an entry underwrappedEndpoints:on the referencedapi:item, or to thenameof a rawendpoints:entry that has no hand-written wrapper: every such endpoint automatically gets an identity wrapper of the same name (each parameter an argument, each response field revealed, with any character other than letters, digits,_, and-in a name replaced by an underscore, so the flattened pathpayload.notebecomespayload_note). Do not write identity wrappers by hand; write awrappedEndpoints:entry only to restrict or reshape an endpoint, and note that doing so replaces its automatic wrapper. -
mapping: ingredient slot ofmappingIngredientsList($table, mappingResult, inputTable)(many, untilinputTable=mappingResult)
How to map available field values to the endpoint’s inputs -
while: formula (returns bool; required, non-nullable)
While this formula remains true, keep adding rows from the endpoint to the table
Scope: all columns of$table(reference as[ColumnName], e.g.,[Name],[Price]) -
count: new column (type: integer; required, non-nullable)
A name for a variable that contains the number of rows added. -
retText: formula (returns text; required, non-nullable)
A message to display to the user when the rows are added.
Scope: all columns oftempTable(reference as[ColumnName], e.g.,[Name],[Price])
Optional
-
outputMapping: ingredient slot ofmappingIngredientsList(outputTable, $table, NULL)(many)
How to map API outputs to values we care about -
innerAction: ingredient slot ofrowActionsIngredients($table)(many)
The action(s) we will perform on each of the returned rows