Common Methods
/object/create | To create a new object. |
/object/delete | To delete an object. |
/object/get | To retrieve the object's attributes. |
/object/set | To set the object's attributes. |
/object/search | To retrieve a collection of objects. |
Where "object" is the name of the object
/object/create
To create a new object. On success, the method always returns the internal object id of the newly created object
{
"attrs":{list of attribute value pairs}
}
{
"result":{"id":the id of the newly created object}
}
Examples:
Method:/user/create
{
"attrs":
{
"domain.id":2,
"name":"John Smith",
"email":"js@acme.com"
}
}
{
"error":0,
"result":{"id":"1234567890abcd"}
}
Method:/token/create
{
"attrs":
{
"user.id":"user id",
"product.id":"product id"
}
}
{
"error":0,
"result":{"id":"1234567890abcd"}
}
/object/delete
To delete an object. The request parameter MUST be the internal id of the object to be deleted. On success the method returns error 0.
Parameters: {"id":the id of the object to be deleted}
Response: {"error":0}
Example:
Method:/user/delete
{
"id":"1234567890abcd"
}
{
"error":0
}
/object/get
To retrieve the object's attributes. The request must provide an array of attributes that are to be retrieved. On success the method returns a list of attribute value pairs.
{
"match":[array of expressions],
"return":[array of attribute names]
}
{
"result":{list of attribute pairs}
}
See /object/search for the description of match expression and conditions.
+Example:+
{
"match":
[
["id","=","userid"]
],
"return":["name","email","phone"]
}
{
"error":0,
"result":
{
"name":"JohnSmith",
"email":"js@acme.com",
"phone":"442088654321"
}
}
Notes: To return all simple type attributes, use "*" in the return array. (Object and collection attribute has to be specified explicitly)
/object/set
To set the object's attributes. The request must provide a list of attributes and values that are to be set. On success the method returns error 0.
{
"id":"the id of the object to be edited",
"attrs":{list of attribute pairs}
}
{
"error":0
}
Example:
Method:/user/set
{
"id":"user id",
"attrs":
{
"name":"John Smith",
"email":"js@acme.com"
}
}
{
"error":0
}
/object/search
To retrieve a collection of objects. The request must provide a search query which consists of the following parts:
- Match : Match Rule
- Return: Return attributes
- Sort: Sort
- Order: Order
- Max: Maximum number of records to return
- Offset: Offset
On success the method returns an array of object IDs.
A match rule consists of an array of expressions , and all expression should result in true.
A match expression is an array of 3 elements:
- the name of the attribute
- the operator
- the value to be matched
For example:
["id","=", 2]
Matching operators supported:
String operators:
| Operator | Function |
|---|---|
| = | equals to |
| >> | starts with |
| << | ends with |
| ~= | like |
| like | like |
{
"match":[
["firstName","=", "john"],
["email","like", "j%acme.com"]
]
}
Integer operators:
| Operator | Function |
|---|---|
| = | equals to |
| >= | greater than or equals to |
| <= | less than or equals to |
| > | greater than |
| < | less than |
{
"match":[
["failCount",">", "3"]
]
}
Date operators:
| Operator | Function |
|---|---|
| = | equals to |
| > | after |
| < | before |
{
"match":[
["lastChangePassword", "<", "2019-01-12T12:00:00Z"]
]
}
Notes: all date value should be in ISO 8601 format.
Request parameters and response:
{
"match": [list of attributes to be matched]
"return":[array of attributes to be returned]
"sort": attribute to be sorted by
"order":"asc" | "desc"
"max": the maximum numbers of records to return
"offset": the offset
}
{
"error": 0,
"result":[array of list of objects]
}
Example:
{
"match": [
["domain.id", "=", "domain id"],
["lastName", "=", "smith"],
["email", "~=", "%@acme.com"],
],
"return":["firstName", "lastName", "email", "telephone"],
"sort":"lastName",
"order":"asc",
"max": 20,
"offset": 10
}
{
"error": 0,
"result":
{
"total": 20,
"rows":
[
{
"firstName":"John",
"lastName":"Smith",
"email":"js@acme.com",
"telephone":"447974321234",
},
{
"firstname":"David",
"lastname":"Smith",
"email":"ds@acme.com",
"telephone":"447974234975",
},
...
]
}
}
{
"match": [
["product.id", "=", "product id"]
],
"return":["serial"],
"sort":"serial",
"order":"asc",
"max": 20,
"offset": 10
}
{
"error": 0,
"result":
{
"total": 20,
"rows":
[
{"serial":"77004155"},
{"serial":"77004245"},
{"serial":"77004266"},
{"serial":"77004321"},
...
]
}
}