2022-02-16 17:42:50 +01:00
{
"openapi" : "3.0.0" ,
"info" : {
"title" : "Budibase API" ,
"description" : "The public API for Budibase apps and its services." ,
"version" : "1.0.0"
} ,
"servers" : [
{
2022-02-17 19:58:09 +01:00
"url" : "http://budibase.app/api/public/v1" ,
2022-02-16 17:42:50 +01:00
"description" : "Budibase Cloud API"
2022-02-17 13:40:08 +01:00
} ,
{
2022-02-17 19:58:09 +01:00
"url" : "{protocol}://{hostname}:10000/api/public/v1" ,
2022-02-17 13:40:08 +01:00
"description" : "Budibase self hosted API"
2022-02-16 17:42:50 +01:00
}
] ,
2022-02-17 19:58:09 +01:00
"components" : {
"examples" : {
"row" : {
"value" : {
"_id" : "ro_ta_5b1649e42a5b41dea4ef7742a36a7a70_e6dc7e38cf1343b2b56760265201cda4" ,
"type" : "row" ,
"tableId" : "ta_5b1649e42a5b41dea4ef7742a36a7a70" ,
"name" : "Mike" ,
"age" : 30 ,
"relationship" : [
{
"primaryDisplay" : "Joe" ,
"_id" : "ro_ta_..."
}
]
}
} ,
"table" : {
"value" : {
"_id" : "ta_5b1649e42a5b41dea4ef7742a36a7a70" ,
"name" : "People" ,
"schema" : {
"name" : {
"type" : "string" ,
"name" : "name"
} ,
"age" : {
"type" : "number" ,
"name" : "age"
} ,
"relationship" : {
"type" : "link" ,
"name" : "relationship" ,
"tableId" : "ta_..." ,
"fieldName" : "relatedColumn" ,
"relationshipType" : "many-to-many"
}
}
}
}
}
} ,
2022-02-16 19:23:38 +01:00
"paths" : {
2022-02-17 13:40:08 +01:00
"/row/{tableId}/search" : {
2022-02-16 19:23:38 +01:00
"post" : {
2022-02-16 19:51:17 +01:00
"summary" : "Allows searching for rows within a table." ,
2022-02-17 13:40:08 +01:00
"parameters" : [
{
"in" : "path" ,
"name" : "tableId" ,
"required" : true ,
"description" : "The ID of the table which contains the rows which are being searched for." ,
"schema" : {
"type" : "string"
}
2022-02-16 19:51:17 +01:00
}
2022-02-17 13:40:08 +01:00
] ,
2022-02-16 19:51:17 +01:00
"requestBody" : {
"required" : true ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"properties" : {
2022-02-17 19:58:09 +01:00
"query" : {
2022-02-16 19:51:17 +01:00
"type" : "object" ,
2022-02-17 19:58:09 +01:00
"properties" : {
"string" : {
"type" : "object" ,
"example" : {
"columnName1" : "value" ,
"columnName2" : "value"
} ,
"description" : "A map of field name to the string to search for, this will look for rows that have a value starting with the string value." ,
"additionalProperties" : {
"type" : "string" ,
"description" : "The value to search for in the column."
}
} ,
"fuzzy" : {
"type" : "object" ,
"description" : "A fuzzy search, only supported by internal tables."
} ,
"range" : {
"type" : "object" ,
"description" : "Searches within a range, the format of this must be columnName -> [low, high]."
} ,
"equal" : {
"type" : "object" ,
"description" : "Searches for rows that have a column value that is exactly the value set."
} ,
"notEqual" : {
"type" : "object" ,
"description" : "Searches for any row which does not contain the specified column value."
} ,
"empty" : {
"type" : "object" ,
"description" : "Searches for rows which do not contain the specified column. The object should simply contain keys of the column names, these can map to any value."
} ,
"notEmpty" : {
"type" : "object" ,
"description" : "Searches for rows which have the specified column."
} ,
"oneOf" : {
"type" : "object" ,
"description" : "Searches for rows which have a column value that is any of the specified values. The format of this must be columnName -> [value1, value2]."
}
2022-02-17 13:40:08 +01:00
}
2022-02-16 19:51:17 +01:00
} ,
2022-02-17 19:58:09 +01:00
"paginate" : {
"type" : "boolean" ,
"description" : "Enables pagination, by default this is disabled."
2022-02-16 19:51:17 +01:00
} ,
2022-02-17 19:58:09 +01:00
"bookmark" : {
"oneOf" : [
{
"type" : "string"
} ,
{
"type" : "integer"
}
] ,
"description" : "If retrieving another page, the bookmark from the previous request must be supplied."
2022-02-16 19:51:17 +01:00
} ,
2022-02-17 19:58:09 +01:00
"limit" : {
"type" : "integer" ,
"description" : "The maximum number of rows to return, useful when paginating, for internal tables this will be limited to 1000, for SQL tables it will be 5000."
2022-02-16 19:51:17 +01:00
} ,
2022-02-17 19:58:09 +01:00
"sort" : {
2022-02-16 19:51:17 +01:00
"type" : "object" ,
2022-02-17 19:58:09 +01:00
"description" : "A set of parameters describing the sort behaviour of the search." ,
"properties" : {
"order" : {
"type" : "string" ,
"enum" : [
"ascending" ,
"descending"
] ,
"description" : "The order of the sort, by default this is ascending."
} ,
"column" : {
"type" : "string" ,
"description" : "The name of the column by which the rows will be sorted."
} ,
"type" : {
"type" : "string" ,
"enum" : [
"string" ,
"number"
] ,
"description" : "Defines whether the column should be treated as a string or as numbers when sorting."
}
}
2022-02-16 19:51:17 +01:00
}
}
}
}
}
} ,
2022-02-16 19:23:38 +01:00
"responses" : {
"200" : {
2022-02-17 19:58:09 +01:00
"description" : "The response will contain an array of rows that match the search parameters." ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"properties" : {
"rows" : {
"description" : "An array of rows, these will each contain an _id field which can be used to update or delete them." ,
"type" : "array" ,
"items" : {
"type" : "object" ,
"example" : {
"$ref" : "#/components/examples/row"
}
}
} ,
"bookmark" : {
"oneOf" : [
{
"type" : "string"
} ,
{
"type" : "integer"
}
] ,
"description" : "If pagination in use, this should be provided"
} ,
"hasNextPage" : {
"description" : "If pagination in use, this will determine if there is another page to fetch." ,
"type" : "boolean"
}
}
}
}
}
2022-02-16 19:23:38 +01:00
}
}
}
}
} ,
2022-02-16 17:42:50 +01:00
"tags" : [ ]
}