tengine:api

This is an old revision of the document!


This page provides details on how you can use TEngine via API calls

Used to create a new table. If the table already exists, it will error out. You must provide a partition key but a sort key is optional. You can also add additional indexes which also require a partition key and an optional sort key. Currently it's not possible to add indexes to an existing table.

Arguments

{
  tablename=STRING,
  pk=STRING
  sk=STRING  (optional)
 
  indexes={
    "string"={
      pk=STRING
      sk=STRING  (optional)
    }
  } (optional)
 
}

Return Format

{
  error=STRING
  success=BOOLEAN
}

Example Request

  temp.req = {};
 
  // Create a base table and two indexes
  // pk is mandatory, sk is optional
 
  temp.req.tablename = "player-test";
  temp.req.pk = "account";
  temp.req.sk = "sort";
 
  temp.req.indexes = {};
 
  temp.req.indexes.house_index = {};
  temp.req.indexes.house_index.pk = "housetype";
  temp.req.indexes.house_index.sk = "housesubtype";
 
  temp.req.indexes.location_index = {};
  temp.req.indexes.location_index.pk = "location";
 
  //create table 
  temp.r = TEngine.createtable(temp.req);
  if (temp.r.error) {
    printf("[TEngine Error]: %s", temp.r.error);
  } 

Example Return

{
   "success": 1,
   "error": ""
}

Retrieve a single item from the table based on the provided partition and sort key (where specified). If the item does not exist, it will not fail but instead, return an empty array. Get requests can not be made on an index: use the Query instead.

Request Format

tablename=STRING
keys={
  "string"=STRING
}

Return Format

{
  error=STRING
  success=BOOLEAN
  result=OBJECT
}

Example Request

  temp.req = {};
  temp.req.tablename = "player-test";
 
  temp.req.keys.account = "Jane";
  temp.req.keys.sort = "housedata";
 
  temp.r = TEngine.get(temp.req);
  if (temp.r.error) {
    printf("[TEngine Error]: %s", temp.r.error);
  }

Example Return

{
   "success": 1,
   "error": "",
   "result": {"sample":"data"}
}

Both methods use the same underlying method but the difference is:
Put: will either replace an existing item with the request or create a new item if it does not exist
Update: will either update an existing item with the request or create a new item if it does not exist

If the item matches any indexes in the table, the item will automatically be added to the index. If the item was previously in the index but no longer matches, it will be removed.

Argument Format

tablename=STRING
keys = {
  "string"=STRING
}
data = {
  "string"=STRING
  "string"={}
  "string"=[]
}

Return Format

{
  error=STRING
  success=BOOLEAN
}

Example Request

  temp.req = {};
  temp.req.keys.account = "Jane";
  temp.req.keys.sort = "housedata";
 
  temp.req.data.housetype="house1";
  temp.req.data.housesubtype="a1";
  temp.req.data.randomvariable="just because";
  temp.req.data.location="Elsewhere";
  temp.req.tablename="player-test";
  temp.r = TEngine.put(temp.req);
  if (temp.r.error) {
    printf("[TEngine Error]: %s", temp.r.error);
  }

Return Example

{
   "success": 1,
   "error": ""
}

Will delete the specified item from the table. If the table has indexes and the item was written to one or more indexes, it will also be deleted from the index

Argument Format

tablename=STRING
keys={
  "string"=STRING
}

Return Format

{
  error=STRING
  success=BOOLEAN
}

Example Request

  temp.req = {};
  temp.req.tablename="player-test";
  temp.req.keys.account = "Jane";
  temp.req.keys.sort = "housedata";
  temp.r = TEngine.deleteitem(temp.req);
  if (temp.r.error) {
    printf("[TEngine Error]: %s", temp.r.error);
  }

Example Return

{
   "success": 1,
   "error": ""
}

~DISCUSSION~

Enter your comment. Wiki syntax is allowed:
 
  • tengine/api.1654736167.txt.gz
  • Last modified: 2022/06/09 00:56
  • by twinny