接口路径(新):http://api.okayapi.com/api/App/Table/Create
接口路径(旧):http://api.okayapi.com/?s=App.Table.Create
接口描述: C insert a new data record into table.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
data | ArrayJSON Format | Optaion | 创建时的初始化数据,需要JSON编码后传递。格式:data={"字段名1":"字段值1","字段名2":"字段值2"...}。数据中的uuid将优先于model_uuid参数。JSON Parser Online |
请求(使用data的JSON格式传递,data和data_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.Create&model_name=article&data={"title":"123456"}&app_key={你的app_key}&sign={动态签名}
请求(使用data_X动态参数传递,data和data_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.Create&model_name=article&data_title=123456&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"id": 4
},
"msg": ""
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口(第一个示例:从省份开始选择):
$rs = OkayApiClient::request('App.Table.Create',array('model_name'=>'telephone','data'=>json_encode(array("mobile"=>"13088886666","mobile_status"=>"1"))));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] =>
Array
(
[err_code] => 0
[err_msg] =>
[id] => 6
)
[msg] => 小白开放接口:App.Table.Create
)
*/
#!/usr/bin/python
#coding=utf-8
import requests
import hashlib
# TODO: 请根据需要,换成您的HOST,app_key和app_secrect
API_URL = '你的小白接口域名,例如:http://api.okayapi.com/'
APP_KEY = '你的app_key'
APP_SECRET = '你的app_secrect'
# 生成签名
def Signature(params, key=None, secret=None):
key = key or APP_KEY
secret = secret or APP_SECRET
params.pop('app_secrect', None)
params['app_key'] = key
md5_ctx = hashlib.md5()
md5_ctx.update(''.join([params[value] for value in sorted([key for key in params])]) + secret)
return md5_ctx.hexdigest().upper()
# 调用小白开放接口
def HTTPGet(url, params):
params['sign'] = Signature(params)
resp = requests.get(url, params)
return resp.json()
def main():
# 待请求的接口与相关参数(根据需要,可动态调整请求参数)
params = {
's': 'App.Table.Create',
'model_name': 'okayapi_message',
'data': json.dumps({'message_nickname': 'test', 'message_key': 'aba'})
}
# 发起请求
return HTTPGet(API_URL, params)
pprint.pprint(main())
# {u'data': {u'err_code': 0, u'err_msg': u'', u'id': u'6'},
# u'msg': u'\u5f53\u524d\u5c0f\u767d\u63a5\u53e3\uff1aApp.Table.Create',
# u'ret': 200}
/**
* 准备接口参数
*/
var data = {title:"123456"};
var params = {
s: "App.Table.Create", // 待请求的接口服务名称
name: "article", // 更多接口参数
data: JSON.stringify(data), // 转JSON格式
callback: "onCallback" // 客户端的JS回调函数
};
/**
* 发起JSONP请求
*/
$.ajax({
url: 'http://api.yesapi.cn/', // TODO:你的接口域名
dataType: 'jsonp',
jsonpCallback: params.callback,
cache: true,
data: enryptData(params) // 动态加密
}).done(function (rs) {
console.log("done");
console.log(rs);
});
/**
* TODO: 客户端的JS回调函数
*/
function onCallback(rs) {
console.log("onCallback");
console.log(rs);
alert("果创云开放接口请求完毕,请查看控制台!");
}
/**
* 生成小白接口签名
*/
function enryptData(params) {
// TODO:请改成您的app_key
const OKAYAPI_APP_KEY = "16BD4337FB1D355902E0502AFCBFD4DF";
// TODO:请改成您的app_secrect,请勿对外暴露!!
const OKAYAPI_APP_SECRECT = "4c1402596e4cd017eeaO670df6f8B6783475b4ac8A32B4900f20abP2159711ad";
params['app_key'] = OKAYAPI_APP_KEY;
var sdic = Object.keys(params).sort();
var paramsStrExceptSign = "";
for(ki in sdic){
paramsStrExceptSign += params[sdic[ki]];
}
var sign = md5(paramsStrExceptSign + OKAYAPI_APP_SECRECT).toUpperCase();
params['sign'] = sign;
return params;
}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1创建失败(不符合表字段要求,或表字段不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
id | Int | 新创建数据的自增ID |
接口路径(新):http://api.okayapi.com/api/App/Table/CheckCreate
接口路径(旧):http://api.okayapi.com/?s=App.Table.CheckCreate
接口描述: CUnique Add a distinct new data record into table. That means, when the data not exist, it will be created, otherwise, no operation is performed.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
data | ArrayJSON Format | Optaion | 创建时的初始化数据,需要JSON编码后传递。格式:data={"字段名1":"字段值1","字段名2":"字段值2"...}。数据中的uuid将优先于model_uuid参数。JSON Parser Online | ||
check_field | ArraySeperated with , | Required | 待检测的字段。注意:data数据中必须包含此字段的数据,用作检测重复的依据。多个检测字段用英文逗号分割。例如:check_field=name,age,表示同时检测名字和年龄。请留意字段类型的相等性判断,如字符串类型的字段不能在data参数中传整型参数。 | ||
model_return_data | Boolean | Optaion | false | 是否返回新创建或原来的数据,model_return_data=1 返回,model_return_data=0 不返回 |
请求(使用data的JSON格式传递,data和data_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.CheckCreate&model_name=article&data={"title":"abc","content":"something"}&check_field=title&app_key={你的app_key}&sign={动态签名}
请求(使用data_X动态参数传递,data和data_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.CheckCreate&model_name=article&data_title=abc&data_content=something&check_field=title&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"id": 4
},
"msg": ""
}
如果数据已经存在,则返回:
{
"ret": 200,
"data": {
"err_code": 3,
"err_msg": "数据已存在,不再创建",
"id": 11
}
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.CheckCreate',array('model_name'=>'okayapi_message','data'=>json_encode(array("message_nickname"=>"小白","message_content"=>"加油!")),'check_field'=>'message_nickname'));
// 输出结果
print_r($rs);
//返回:
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
[id] => 4
)
[msg] => 小白开放接口:App.Table.CheckCreate
)
//如果数据已经存在,则返回:
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 3
[err_msg] => 数据已存在,不再创建
[id] => 4
)
[msg] => 小白开放接口:App.Table.CheckCreate
)
#!/usr/bin/python
#coding=utf-8
import requests
import hashlib
# TODO: 请根据需要,换成您的HOST,app_key和app_secrect
API_URL = '你的小白接口域名,例如:http://api.okayapi.com/'
APP_KEY = '你的app_key'
APP_SECRET = '你的app_secrect'
# 生成签名
def Signature(params, key=None, secret=None):
key = key or APP_KEY
secret = secret or APP_SECRET
params.pop('app_secrect', None)
params['app_key'] = key
md5_ctx = hashlib.md5()
md5_ctx.update(''.join([params[value] for value in sorted([key for key in params])]) + secret)
return md5_ctx.hexdigest().upper()
# 调用小白开放接口
def HTTPGet(url, params):
params['sign'] = Signature(params)
resp = requests.get(url, params)
return resp.json()
def main():
# 待请求的接口与相关参数(根据需要,可动态调整请求参数)
params = {
's': 'App.Table.CheckCreate',
'model_name': 'okayapi_message',
'data': json.dumps({'message_nickname': 'test', 'message_key': 'nba'}),
'check_field': 'message_key'
}
# 发起请求
return HTTPGet(API_URL, params)
pprint.pprint(main())
# {u'data': {u'err_code': 0, u'err_msg': u'', u'id': u'5'},
# u'msg': u'\u5f53\u524d\u5c0f\u767d\u63a5\u53e3\uff1aApp.Table.CheckCreate',
# u'ret': 200}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1创建失败(不符合表字段要求,或表字段不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记;3、数据已存在,不再创建 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
id | Int | 新创建数据的自增ID/或原来数据的ID |
data | Object | 新创建或原来的数据,全部字段返回。默认不返回,model_return_data=1 才返回。 |
接口路径(新):http://api.okayapi.com/api/App/Table/MultiCheckCreate
接口路径(旧):http://api.okayapi.com/?s=App.Table.MultiCheckCreate
接口描述: PatchCUnique For batch operations, add multi distinct new data into table.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
datas | ArrayJSON Format | Required | 批量创建时的初始化数据,注意是数组格式,需要JSON编码后传递。格式:datas=[{"字段名1":"字段值1","字段名2":"字段值2"...}]。数据中的uuid将优先于model_uuid参数。JSON Parser Online | ||
check_field | ArraySeperated with , | Required | 待检测的字段。注意:data数据中必须包含此字段的数据,用作检测重复的依据。多个检测字段用英文逗号分割。例如:check_field=name,age,表示同时检测名字和年龄。请留意字段类型的相等性判断,如字符串类型的字段不能在data参数中传整型参数。 |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.MultiCheckCreate&model_name=article&datas=[{"title":"aaa"},{"title":"bbb"},{"title":"ccc"}]&check_field=title&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"details": [
{
"id": 1,
"msg": "创建成功",
"data_id": 42,
"create_status": 0
},
{
"id": 2,
"msg": "创建成功",
"data_id": 43,
"create_status": 0
},
{
"id": 3,
"msg": "创建成功",
"data_id": 44,
"create_status": 0
}
]
},
"msg": "V1.3.4 小白开放接口 App.Table.MultiCheckCreate"
}
再次请求:
{OKAYAPI_API_HOST}/?s=App.Table.MultiCheckCreate&model_name=article&datas=[{"title":"aaa"},{"title":"123"},{"title":"456"}]&check_field=title&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"details": [
{
"id": 1,
"msg": "数据已存在,不再创建",
"data_id": 42,
"create_status": 2
},
{
"id": 2,
"msg": "创建成功",
"data_id": 45,
"create_status": 0
},
{
"id": 3,
"msg": "创建成功",
"data_id": 46,
"create_status": 0
}
]
},
"msg": "V1.3.4 小白开放接口 App.Table.MultiCheckCreate"
}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1操作失败,2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
details | Array | 创建的详情 |
details[].id | Int | 客户端传递参数的序号,从1开始 |
details[].create_status | Int | 服务端创建非重复数据的状态,0表示创建添加成功,1表示创建失败,2表示数据已存在 |
details[].data_id | Int | 数据ID,创建成功时是新添加数据的ID,数据存在时是原来数据的ID |
details[].msg | String | 创建时的错误提示信息 |
接口路径(新):http://api.okayapi.com/api/App/Table/CheckCreateOrUpdate
接口路径(旧):http://api.okayapi.com/?s=App.Table.CheckCreateOrUpdate
接口描述: CUUnique Try to add an DISTINCT record when not exist, or update the existed record.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
data | ArrayJSON Format | Optaion | 创建时的初始化数据,需要JSON编码后传递。格式:data={"字段名1":"字段值1","字段名2":"字段值2"...}。数据中的uuid将优先于model_uuid参数。JSON Parser Online | ||
check_field | ArraySeperated with , | Required | 待检测的字段。注意:data数据中必须包含待检测的全部字段。即check_field可指定data数据中的一个或多个字段。多个检测字段用英文逗号分割。例如:check_field=name,age,表示同时检测名字和年龄。请留意字段类型的相等性判断,如字符串类型的字段不能在data参数中传整型参数。 | ||
logic | Enum | Optaion | and | Range: and/or | 多个check_field的逻辑组合,logic=and表示逻辑且,logic=or表示逻辑或 |
请求(使用data的JSON格式传递,data和data_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.CheckCreateOrUpdate&model_name=article&data={"title":"abc"}&check_field=title&app_key={你的app_key}&sign={动态签名}
请求(使用data_X动态参数传递,data和data_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.CheckCreateOrUpdate&model_name=article&data_title=abc&check_field=title&app_key={你的app_key}&sign={动态签名}
返回(如果未存在就新建):
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"id": 4,
"op_type": "insert"
},
"msg": ""
}
如果数据已经存在,则返回(存在则更新):
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"id": 4,
"op_type": "update"
},
"msg": ""
}
以下示例演示了多个检测字段使用逻辑或的效果,请求:
{OKAYAPI_API_HOST}/?s=App.Table.CheckCreateOrUpdate&model_name=article&data={"title":"abc","view_times":1}&check_field=title,view_times&logic=or
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"id": 52,
"op_type": "update"
},
"msg": "V1.4.2 小白开放接口 App.Table.CheckCreateOrUpdate"
}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1创建失败(不符合表字段要求,或表字段不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记; |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
id | Int | 新创建数据的自增ID/或原来数据的ID |
op_type | String | 本次操作的具体类型,insert为插入,update为更新 |
接口路径(新):http://api.okayapi.com/api/App/Table/MultiCheckCreateOrUpdate
接口路径(旧):http://api.okayapi.com/?s=App.Table.MultiCheckCreateOrUpdate
接口描述: PatchCUUnique Try to add multi DISTINCT record when not exist, or multi update the existed record.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
datas | ArrayJSON Format | Required | 需要批量创建的初始化数据,需要JSON编码后传递。格式:datas=[{第一组数据},{第二组数据},{第三组数据……}]。每一组的数据格式:{"字段名1":"字段值1","字段名2":"字段值2"...}。数据中的uuid将优先于model_uuid参数。JSON Parser Online | ||
check_field | ArraySeperated with , | Required | 待检测的字段,非批量,全部检测的字段都应一致。注意:datas批量数据每一组数据中必须包含待检测的全部字段。即check_field可指定data数据中的一个或多个字段。多个检测字段用英文逗号分割。例如:check_field=name,age,表示同时检测名字和年龄。请留意字段类型的相等性判断,如字符串类型的字段不能在data参数中传整型参数。 | ||
logic | Enum | Optaion | and | Range: and/or | 多个check_field的逻辑组合,非批量,全部检测的字段都应一致。logic=and表示逻辑且,logic=or表示逻辑或 |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.MultiCheckCreateOrUpdate&model_name=article&datas=[{"title":"aaa","state":1},{"title":"bbb","state":0}]&check_field=title&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"details": [
{
"op_type": "update",
"id": 42
},
{
"op_type": "update",
"id": 43
}
]
},
"msg": "V1.3.20 小白开放接口 App.Table.MultiCheckCreateOrUpdate"
}
以下是部分参数格式错误的请求示例:
{OKAYAPI_API_HOST}/?s=App.Table.MultiCheckCreateOrUpdate&model_name=article&datas=[{"title":"aaa","state":1,"content":"文章内容"},{"title":"bbb"}]&check_field=title,state
返回:
{
"ret": 200,
"data": {
"err_code": 3,
"err_msg": "data参数中,缺少需要检测重复的state字段数据。",
"details": [
{
"op_type": "insert",
"id": "57"
},
{
"op_type": "fail",
"id": 0,
"error": "data参数中,缺少需要检测重复的state字段数据",
"data": {
"title": "bbb"
}
}
]
},
"msg": "V1.3.22 小白开放接口 App.Table.MultiCheckCreateOrUpdate"
}
以下示例演示在批量中使用逻辑或的效果,请求:
{OKAYAPI_API_HOST}/?s=App.Table.MultiCheckCreateOrUpdate&model_name=article&datas=[{"title":"aaa","state":1,"content":"文章内容"},{"title":"bbb","state":0}]&check_field=title,state&logic=or
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"details": [
{
"op_type": "update",
"id": 42
},
{
"op_type": "update",
"id": 36
}
]
},
"msg": "V1.4.2 小白开放接口 App.Table.MultiCheckCreateOrUpdate"
}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1创建失败(不符合表字段要求,或表字段不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记;3存在部分失败的情况 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
details | Array | 批量的结果 |
details[].id | Int | 新创建数据的自增ID/或原来数据的ID |
details[].op_type | String | 本次操作的具体类型,insert为插入,update为更新,fail为失败(参数错误) |
model_name | String | 当前表单名称 |
接口路径(新):http://api.okayapi.com/api/App/Table/MultiCreate
接口路径(旧):http://api.okayapi.com/?s=App.Table.MultiCreate
接口描述: PatchC Import multi data records and return import result detail.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
datas | ArrayJSON Format | Required | 批量导入的数据。特别注意!这是复数datas,即需要传递是的单个创建时的数组的数组。格式为JSON,即:datas=[单个创建时的数据1, 单个创建时的数据2, ...]。一次最多只允许导入1000条数据。数据中的uuid将优先于model_uuid参数。JSON Parser Online |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.MultiCreate&model_name=article&datas=[{"title":"文章标题1"},{"title":"文章标题2"}]&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"total": 2,
"import_num": 2,
"not_import_num": 0,
"details": [
{
"id": 1,
"new_id": 10,
"msg": "导入成功"
},
{
"id": 2,
"new_id": 11,
"msg": "导入成功"
}
]
},
"msg": ""
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.MultiCreate',array('model_name'=>'Price','datas'=>json_encode(array(array('shangpin'=>'草莓','price'=>20),array('shangpin'=>'橘子','price'=>3.5)))));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
[total] => 2
[import_num] => 2
[not_import_num] => 0
[details] => Array
(
[0] => Array ( [id] => 1 [msg] => 导入成功 )
[1] => Array ( [id] => 2 [msg] => 导入成功 )
)
)
[msg] => 小白开放接口:App.Table.MultiCreate
)
*/
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0导入成功;1导入失败(如表不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
total | Int | 本次导入的总数量 |
import_num | Int | 成功导入的数量 |
not_import_num | Int | 导入失败的数量 |
details | Array | 导入过程中的操作纪录 |
details[].id | Int | 导入的ID,从1开始 |
details[].new_id | Int | 数据添加成功时的纪录ID,失败时为0 |
details[].msg | String | 导入的结果 |
接口路径(新):http://api.okayapi.com/api/App/Table/MultiFastCreate
接口路径(旧):http://api.okayapi.com/?s=App.Table.MultiFastCreate
接口描述: PatchC FAST to import multi new data records without any detail. You can also set SYSTEM fields: id, add_time, update_time, ext_data(JSON).
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
datas | ArrayJSON Format | Required | 批量导入的数据。特别注意!这是复数datas,即需要传递是的单个创建时的数组的数组。格式为JSON,即:datas=[单个创建时的数据1, 单个创建时的数据2, ...]。一次最多只允许导入1000条数据。 | ||
is_ignore | Boolean | Optaion | true | 是否启用IGNORE,1是0否,其中:
|
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0导入成功;1导入失败(如表不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
total | Int | 本次导入的总数量 |
接口路径(新):http://api.okayapi.com/api/App/Table/Update
接口路径(旧):http://api.okayapi.com/?s=App.Table.Update
接口描述: U Update a record data by ID.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
id | Int | Required | MIN: 1 | 数据ID,例如:1,2,3,…… | |
data | ArrayJSON Format | Optaion | 待更新的数据,需要JSON编码后传递。格式:data={"字段名1":"字段值1","字段名2":"字段值2"...}。JSON Parser Online |
请求(使用data的JSON格式传递,data和data_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.Update&model_name=article&id=5&data={"state":2}&app_key={你的app_key}&sign={动态签名}
请求(使用data_X动态参数传递,data和data_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.Update&model_name=article&id=5&data_state=2&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": ""
},
"msg": ""
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.Update',array('model_name'=>'Price','id'=>'7','data'=>json_encode(array('shangpin'=>'橙子','price'=>'6'))));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
)
[msg] => 小白开放接口:App.Table.Update
)
*/
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,更新失败(不符合表字段要求,或表字段不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记;3更新失败(数据已删除或不存在) |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
接口路径(新):http://api.okayapi.com/api/App/Table/MultiUpdate
接口路径(旧):http://api.okayapi.com/?s=App.Table.MultiUpdate
接口描述: PatchU Update multi data records by many IDs.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
ids | ids | Required | MAX: 500 | 多个ID,使用英文逗号分割,例如:ids=1,2,3 | |
data | ArrayJSON Format | Optaion | 待更新的数据,需要JSON编码后传递。格式:data={"字段名1":"字段值1","字段名2":"字段值2"...}。JSON Parser Online |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.MultiUpdate&model_name=article&ids=36,37&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"update_total": 2
},
"msg": "小白开放接口:App.Table.MultiUpdate"
}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,更新失败(不符合表字段要求,或表字段不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记;3更新失败(数据已删除或不存在) |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
update_total | Int | 成功更新的数量 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreeUpdate
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreeUpdate
接口描述: UPatch Update table data with conditions.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
data | ArrayJSON Format | Optaion | 待更新的数据,需要JSON编码后传递。格式:data={"字段名1":"字段值1","字段名2":"字段值2"...}。JSON Parser Online |
请求(使用data的JSON格式传递,data和data_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.FreeUpdate&model_name=article&where=[["title","=","123456"]]&data={"title":"654321"}&app_key={你的app_key}&sign={动态签名}
请求(使用data_X动态参数传递,data和data_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.FreeUpdate&model_name=article&where_title=123456&data_title=654321&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"update_rows": 1
},
"msg": ""
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.FreeUpdate',array('model_name'=>'Price','where'=>json_encode(array(array("shangpin","LIKE","%葡萄%"))),'data'=>json_encode(array('price'=>'6'))));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
[update_rows] => 2
)
[msg] => 小白开放接口:App.Table.FreeUpdate
)
*/
#!/usr/bin/python
#coding=utf-8
import requests
import hashlib
# TODO: 请根据需要,换成您的HOST,app_key和app_secrect
API_URL = '你的小白接口域名,例如:http://api.okayapi.com/'
APP_KEY = '你的app_key'
APP_SECRET = '你的app_secrect'
# 生成签名
def Signature(params, key=None, secret=None):
key = key or APP_KEY
secret = secret or APP_SECRET
params.pop('app_secrect', None)
params['app_key'] = key
md5_ctx = hashlib.md5()
md5_ctx.update(''.join([params[value] for value in sorted([key for key in params])]) + secret)
return md5_ctx.hexdigest().upper()
# 调用小白开放接口
def HTTPGet(url, params):
params['sign'] = Signature(params)
resp = requests.get(url, params)
return resp.json()
def main():
# 待请求的接口与相关参数(根据需要,可动态调整请求参数)
params = {
's': 'App.Table.FreeUpdate',
'model_name': 'okayapi_message',
'where': json.dumps([['message_key', '=', 'aba']]),
'data': json.dumps({'message_content': 'after_update'})
}
# 发起请求
return HTTPGet(API_URL, params)
pprint.pprint(main())
# {u'data': {u'err_code': 0, u'err_msg': u'', u'update_rows': 2},
# u'msg': u'\u5f53\u524d\u5c0f\u767d\u63a5\u53e3\uff1aApp.Table.FreeUpdate',
# u'ret': 200}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,更新失败(不符合表字段要求,或表字段不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记,3无数据更新 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
update_rows | Int | 更新的行数,0表示无任何更新 |
接口路径(新):http://api.okayapi.com/api/App/Table/Get
接口路径(旧):http://api.okayapi.com/?s=App.Table.Get
接口描述: R Get one record data by ID.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
id | Int | Required | MIN: 1 | 数据ID,例如:1,2,3,…… |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.Get&model_name=article&id=1&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"data": {
"id": 1,
"uuid": "",
"add_time": "2017-11-23 23:35:13",
"update_time": "2018-06-27 22:27:18",
"ext_data": null,
"title": "PHP程序员历险记",
"content": "PHP<a>test</a>(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。PHP<a>test</a>(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。PHP<a>test</a>(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。",
"post_time": "1970-01-01 00:00:00",
"view_times": "5",
"state": "1"
}
},
"msg": ""
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.Get', array('model_name'=>'telephone','id'=>3));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] =>
Array
(
[err_code] => 0
[err_msg] =>
[data] =>
Array
(
[id] => 3
[uuid] =>
[add_time] => 2019-02-02 22:49:39
[update_time] =>
[ext_data] =>
[mobile] => 13902928166
[mobile_status] => 1
)
)
[msg] => 小白开放接口:App.Table.Get
)
*/
#!/usr/bin/python
#coding=utf-8
import requests
import hashlib
# TODO: 请根据需要,换成您的HOST,app_key和app_secrect
API_URL = '你的小白接口域名,例如:http://api.okayapi.com/'
APP_KEY = '你的app_key'
APP_SECRET = '你的app_secrect'
# 生成签名
def Signature(params, key=None, secret=None):
key = key or APP_KEY
secret = secret or APP_SECRET
params.pop('app_secrect', None)
params['app_key'] = key
md5_ctx = hashlib.md5()
md5_ctx.update(''.join([params[value] for value in sorted([key for key in params])]) + secret)
return md5_ctx.hexdigest().upper()
# 调用小白开放接口
def HTTPGet(url, params):
params['sign'] = Signature(params)
resp = requests.get(url, params)
return resp.json()
def main():
# 待请求的接口与相关参数
params = {'s': 'App.Table.Get', 'model_name': 'okayapi_message', 'id' : '1'}
# 发起请求
return HTTPGet(API_URL, params)
print(main())
#{u'msg': u'\u5f53\u524d\u5c0f\u767d\u63a5\u53e3\uff1aApp.Table.Get', u'data': {u'data': {u'update_time': u'2019-01-26 23:34:28', u'uuid': u'', u'ext_data': None, u'message_content': u'<p>\u8fd9\u662f\u4e00\u6761\u8bc4\u8bba\u4fe1\u606f</p>', u'message_post_time': u'2018-11-09 14:18:04', u'message_nickname': u'dogstar', u'id': 1, u'add_time': u'2018-11-09 14:18:04'}, u'err_msg': u'', u'err_code': 0}, u'ret': 200}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,获取失败(符合表字段要求,或表字段不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记;3获取失败(数据已删除或不存在) |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
data | Object | 获取的数据,并返回全部字段的数据 |
接口路径(新):http://api.okayapi.com/api/App/Table/MultiGet
接口路径(旧):http://api.okayapi.com/?s=App.Table.MultiGet
接口描述: PatchR Get many data records with many IDs.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
ids | ids | Required | MAX: 500 | 多个ID,使用英文逗号分割,例如:ids=1,2,3 |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.MultiGet&model_name=article&ids=36,37&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"list": [
{
"id": 36,
"uuid": "",
"add_time": "2019-04-06 17:25:13",
"update_time": "2019-05-01 20:49:53",
"ext_data": null,
"title": "PHP程序员历险记223",
"content": "<p><em>PHP</em>(外文名:<em>PHP</em>: Hypertext Preprocessor,中文名:“超文本预处理器”)</p>",
"post_time": "2020-07-29 06:30:00",
"view_times": "0",
"state": "0",
"test_time": "2019-04-06 17:25:13",
"zhaiyao": ""
},
{
"id": 37,
"uuid": "",
"add_time": "2019-06-07 10:00:23",
"update_time": null,
"ext_data": null,
"title": "来吧~",
"content": null,
"post_time": "1970-01-01 00:00:00",
"view_times": "0",
"state": "0",
"test_time": "2019-06-07 10:00:23",
"zhaiyao": "来吧~"
}
]
},
"msg": "小白开放接口:App.Table.MultiGet"
}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,获取失败(符合表字段要求,或表字段不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
list | Array | 获取的数据,没有任何数据时为空数组,如果未找到ID对应的数据则没有任何元素 |
接口路径(新):http://api.okayapi.com/api/App/Table/Delete
接口路径(旧):http://api.okayapi.com/?s=App.Table.Delete
接口描述: D Delete one data record by one ID.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
id | Int | Required | MIN: 1 | 数据ID,例如:1,2,3,…… |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.Delete&model_name=article&id=4&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": ""
},
"msg": ""
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口(第一个示例:从省份开始选择):
$rs = OkayApiClient::request('App.Table.Delete',array('model_name'=>'telephone','id'=>6));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] =>
Array
(
[err_code] => 0
[err_msg] =>
)
[msg] => 小白开放接口:App.Table.Delete
)
*/
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功删除;1开发类错误,删除失败(表单不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
接口路径(新):http://api.okayapi.com/api/App/Table/MultiDelete
接口路径(旧):http://api.okayapi.com/?s=App.Table.MultiDelete
接口描述: PatchD Delete many data records with many IDs.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
ids | ids | Required | MAX: 500 | 多个ID,使用英文逗号分割,例如:ids=1,2,3 |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.MultiDelete&model_name=article&ids=36,37&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": ""
},
"msg": "小白开放接口:App.Table.MultiDelete"
}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功删除;1开发类错误,删除失败(表单不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
接口路径(新):http://api.okayapi.com/api/App/Table/Count
接口路径(旧):http://api.okayapi.com/?s=App.Table.Count
接口描述: RStat Count table total amount.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.Count&model_name=article&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"total": 2
},
"msg": ""
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.Count', array('model_name'=>'telephone'));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] =>
Array
(
[err_code] => 0
[err_msg] =>
[total] => 2
)
[msg] => 小白开放接口:App.Table.Count
)
*/
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,获取失败(表单不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
total | Int | 数据的总条目数量 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreeAF
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreeAF
接口描述: RStat Aggregation query with GROUP based on multiple custom conditions (AND or OR).
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
op_fun | Enum | Required | SUM | Range: SUM/COUNT/MIN/MAX/AVG | 聚合函数操作 |
op_field | String | Required | 进行聚合的字段名称,例如:SUM(price)中的price价格字段 | ||
group_filed | ArraySeperated with , | Required | 分组字段,多个分组字段使用英文逗号分割,相当于:GROUP BY {group_filed} | ||
sort_type | Int | Optaion | 1 | 排序的类型:1是聚合结果升序(默认);2是聚合结果逆序;3是分组字段升序;4是分组字段降序 | |
page | Int | Optaion | 1 | MIN: 1 | 第几页 |
top_num | Int | Optaion | 10 | MIN: 1;MAX: 500 | 返回结果的数量,前面多少条 |
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
select_more | ArraySeperated with , | Optaion | 需要选择的更多字段,默认已经固定返回{groupField}参数字段和聚合结果这两个字段。多个字段用英文逗号分割,如:select_more=id,uuid。如果需要再进行聚合运算,可以类似这样:select_more=id@MIN,uuid。即:字段@聚合运算。聚合运算主要有:SUM/COUNT/MIN/MAX/AVG。id@MIN 对应返回的字段名是 id_AT_MIN,name@COUNT 对应返回字段是 name_AT_COUNT,依次类似。即对应字段格式是:字段_AT_聚合运算。 |
请求(where和where_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.FreeAF&model_name=article&op_fun=SUM&op_field=view_times&group_filed=title&where=[["id",">",0]]&app_key={你的app_key}&sign={动态签名}
请求(where和where_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.FreeAF&model_name=article&op_fun=SUM&op_field=view_times&group_filed=title&where_id=GT-0&app_key={你的app_key}&sign={动态签名}
上面查询相当于,SELECT title, SUM(view_times) AS total_num FROM article WHERE id > 0 GROUP BY title ORDER BY total_num ASC LIMIT 0,10
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"items": [
{
"title": "这是一篇文章标题",
"total_num": "100"
},
{
"title": "这又是另一篇文章标题",
"total_num": "200"
},
// 略……
],
"total": 12
},
"msg": ""
}
示例2-附加更多选择字段select_more:
请求:
{OKAYAPI_API_HOST}/?s=App.Table.FreeAF&model_name=article&op_fun=SUM&op_field=view_times&group_filed=title&where=[["id",">",0]]&select_more=post_time,state@COUNT&app_key={你的app_key}&sign={动态签名}
上面查询相当于:SELECT post_time, COUNT(state) AS state_AT_COUNT, title, SUM(view_times) AS total_num FROM pa_article_tbl WHERE AND (id > 0) GROUP BY title ORDER BY total_num ASC LIMIT 0,10
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"items": [
{
"post_time": "1970-01-01 00:00:00", // 对应参数:select_more=post_time
"state_AT_COUNT": "1", // 对应参数:select_more=state@COUNT
"title": "这是一篇文章标题",
"total_num": "100"
},
{
"post_time": "1970-01-01 00:00:00",
"state_AT_COUNT": "1",
"title": "这又是另一篇文章标题",
"total_num": "200"
},
// 略……
],
"total": 22
},
"msg": ""
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口(第一个示例:从省份开始选择):
$rs = OkayApiClient::request('App.Table.FreeAF',array('model_name'=>'Price','op_fun'=>'SUM','op_field'=>'price','group_filed'=>'shangpin','where'=>json_encode(array(array("id",">","0")))));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
[items] => Array
(
[0] => Array ( [shangpin] => 橘子 [total_num] => 5 )
[1] => Array ( [shangpin] => 苹果 [total_num] => 18 )
[2] => Array ( [shangpin] => 葡萄 [total_num] => 30 )
)
)
[msg] => 小白开放接口:App.Table.FreeAF
)
*/
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,获取失败(表单不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
items | Array | 聚合运算的结果 |
items[].XXX | String | 分组字段,由客户端传入的字段而定 |
items[].total_num | String | 聚合运算的结果(固定为:total_num) |
total | Int | 分组的总条数 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreeCount
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreeCount
接口描述: RStat Count table with conditions.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
count_by | String | Optaion | 需要非重复计数的字段,默认统计全部行数,若传字段则按些字段的非重复数据进行统计,相当于:COUNT(DISTINCT {count_by})。 |
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"total": 3
},
"msg": ""
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.FreeCount', array('model_name'=>'Price','where'=>json_encode(array(array("shangpin","LIKE","%葡萄%"),array("shangpin","=","苹果"))),'logic'=>'or'));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
[total] => 4
)
[msg] => 小白开放接口:App.Table.FreeCount
)
*/
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,获取失败(表单不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
total | Int | 数据的总条目数量 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreeExport
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreeExport
接口描述: R Export table data and download txt/csv file.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
select | ArraySeperated with , | Optaion | SQL语句的SELECT部分,多个字段用英文逗号分割,如:select=id,uuid | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
order | ArrayJSON Format | Optaion | [] | SQL语句的ORDER部分,JSON格式。具体格式为:[第一组排序,第二组排序,……],如:order = ["id DESC", "add_time ASC"],表示 id DESC, add_time ASC。特别地,RAND表示随机排序,请慎用。 | |
file_type | Enum | Optaion | txt | Range: csv/txt/excel | 下载文件的类型,txt或csv或excel。 |
sep | String | Optaion | , | 数据分割符,@TAB则表示水平制表符。 | |
encoding | Enum | Optaion | UTF-8 | Range: UTF-8/GB2312 | 导出的CSV/TXT/Excel文件编码,如果需要ANSI格式可使用encoding=GB2312。 |
page | Int | Optaion | 1 | MIN: 1 | 第几页 |
perpage | Int | Optaion | 1000 | MIN: 0;MAX: 150000 | 分页数量 |
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,查询失败(表单不存在或查询错误);2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
接口路径(新):http://api.okayapi.com/api/App/Table/Pagination
接口路径(旧):http://api.okayapi.com/?s=App.Table.Pagination
接口描述: R The most HOT API, powerful to query data or list all data in pagination, support field selection, sorting, and conditional query.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
select | ArraySeperated with , | Optaion | SQL语句的SELECT部分,多个字段用英文逗号分割,如:select=id,uuid | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
order | ArrayJSON Format | Optaion | [] | SQL语句的ORDER部分,JSON格式。具体格式为:[第一组排序,第二组排序,……],可以单个或组合排序。 每一组排序格式为:"字段名 + 空格 + ASC|DESC",其中:
例2:组合排序,order=["id DESC", "add_time ASC"],表示id DESC, add_time ASC,即先按ID从大到小,再按创建时间倒序排序。 特别地,RAND表示随机排序,请慎用。 | |
page | Int | Optaion | 1 | MIN: 1 | 第几页 |
perpage | Int | Optaion | 10 | MIN: 1;MAX: 10000 | 分页数量 |
is_real_total | Boolean | Optaion | true | 是否需要真正的总数,1是0否,当表单数据过多时,如果不需要查询真正的总数,将能极大提升接口响应的速度。若为假总数,固定返回9999999。 |
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,查询失败(表单不存在或查询错误);2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
total | Int | 数据的总条目数量 |
list | Array | 查询的结果列表数据 |
page | Int | 当前第几页 |
perpage | Int | 当前分页数量 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreeLeftJoinQuery
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreeLeftJoinQuery
接口描述: R关联 A little complicated, very powerful to JOIN query with another table.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
join_model_name | String | Required | 需要关联的表单名称,目前只支持关联一个表 | ||
select | ArraySeperated with , | Optaion | 针对主表的SQL语句的SELECT部分,多个字段用英文逗号分割,如:select=id,uuid。 | ||
join_select | ArraySeperated with , | Required | MIN: 1 | 针对关联表的SQL语句的SELECT部分,至少需要指定获取一个字段,多个字段用英文逗号分割,如:select=id,uuid。注意:为避免字段名称冲突,关联表字段在接口返回的结果中的名称为:{关联表单名称}_{关联字段名称}。 | |
on | ArrayJSON Format | Required | [] | 用于指定表单关联关系的ON部分,JSON格式,key-value对,key为主表字段名,value为关联表字段名,支持多组。例如:model_name.name = join_model_name.name AND model_name.age = join_model_name.other_age,则接口传递参数为:on={"name":"name","age":"other_age"} | |
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
order | ArrayJSON Format | Optaion | [] | 针对主表的SQL语句的ORDER部分,JSON格式。具体格式为:[第一组排序,第二组排序,……],可以单个或组合排序。 每一组排序格式为:"字段名 + 空格 + ASC|DESC",其中:
例2:组合排序,order=["id DESC", "add_time ASC"],表示id DESC, add_time ASC,即先按ID从大到小,再按创建时间倒序排序。 特别地,RAND表示随机排序,请慎用。 | |
page | Int | Optaion | 1 | MIN: 1 | 第几页 |
perpage | Int | Optaion | 10 | MIN: 1;MAX: 10000 | 分页数量 |
is_real_total | Boolean | Optaion | true | 是否需要真正的总数,1是0否,当表单数据过多时,如果不需要查询真正的总数,将能极大提升接口响应的速度。若为假总数,固定返回9999999。 |
假设,当前有两个表单,分别是:文章内容表单(article)、文章分类表单(category),其中:
文章内容表单(article)数据如下:
+----+----------------------+----------------------------------------------------------------+------------+---------+
| id | title | content | view_times | cate_id |
+----+----------------------+----------------------------------------------------------------+------------+---------+
| 36 | PHP程序员历险记223 | <p>PHP(中文名:“超文本预处理器”)是一种通用开源脚本语言。</p> | 200 | 3 |
| 37 | 小白开放平台更新公告 | <p>1.推出四大优惠券 2.新增#修改会员分组#接口</p> | 300 | 1 |
| 38 | 我改了标题 | <p>创建或更新非重复新数据接口</p> | 260 | 2 |
| 39 | 标签 | <p>我爱你,中国</p> | 100 | 0 |
+----+----------------------+----------------------------------------------------------------+------------+---------+
4 rows in set
文章分类表单(category)数据如下:
+----+-----------+---------+
| id | cate_name | is_show |
+----+-----------+---------+
| 1 | 大数据 | 0 |
| 2 | 人工智能 | 1 |
| 3 | 编程开发 | 1 |
+----+-----------+---------+
3 rows in set
并且,article.cate_id字段表示分类ID。那么,下面将演示如何进行关联查询。
【关联查询示例1】查询文章内容id = 36的文章信息以及关联的分类信息。
请求:
{OKAYAPI_API_HOST}/?s=App.Table.FreeLeftJoinQuery&model_name=article&join_model_name=category&select=id,title,content,view_times,cate_id&join_select=cate_name&on={"cate_id":"id"}&logic=and&where=[["id", "=", "36"]]&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"total": 1,
"list": [
{
"id": 36,
"title": "PHP程序员历险记223",
"content": "<p>PHP(中文名:“超文本预处理器”)是一种通用开源脚本语言。</p>",
"view_times": 200,
"cate_id": 3,
"category_cate_name": "编程开发"
}
],
"page": 1,
"perpage": 10
},
"msg": "V1.2.28 小白开放接口 App.Table.FreeLeftJoinQuery"
}
【关联查询示例2】查询访问量大于等于100且分类为显示的文章数据。
需要注意,where参数的三元组写法(如上面示例1)默认全部作用于主表单。如果需要对关联表单进行条件判断,需要改用MySQL条件字符串。同时约定:主表单别名为TL(表示Table Left)、关联表单别名为TR(表示Table Right)。下面示例将进行演示。
请求:
{OKAYAPI_API_HOST}/?s=App.Table.FreeLeftJoinQuery&model_name=article&join_model_name=category&select=id,title,content,view_times,cate_id&join_select=cate_name&on={"cate_id":"id"}&logic=and&where=["TL.view_times >= 100", "TR.is_show = 1"]&page=1&perpage=10&order=["id ASC", "TR.cate_name DESC"]&app_key={你的app_key}&sign={动态签名}
请求(如果使用where_TL_X / where_TR_X 的写法,默认以TL为主):
{OKAYAPI_API_HOST}/?s=App.Table.FreeLeftJoinQuery&model_name=article&join_model_name=category&select=id,title,content,view_times,cate_id&join_select=cate_name&on={"cate_id":"id"}&logic=and&where_TL_view_times=GE-100&where_TR_is_show=1&page=1&perpage=10&order=["id ASC", "TR.cate_name DESC"]&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"total": 2,
"list": [
{
"id": 36,
"title": "PHP程序员历险记223",
"content": "<p>PHP(中文名:“超文本预处理器”)是一种通用开源脚本语言。</p>",
"view_times": 200,
"cate_id": 3,
"category_cate_name": "编程开发"
},
{
"id": 38,
"title": "我改了标题",
"content": "<p>创建或更新非重复新数据接口</p>",
"view_times": 260,
"cate_id": 2,
"category_cate_name": "人工智能"
}
],
"page": 1,
"perpage": 10
},
"msg": "V1.2.28 小白开放接口 App.Table.FreeLeftJoinQuery"
}
如果需要对关联表单的字段进行排序,可以添加前缀【TR.】。
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,查询失败(表单不存在或查询错误);2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
total | Int | 数据的总条目数量 |
list | Array | 查询的结果列表数据 |
page | Int | 当前第几页 |
perpage | Int | 当前分页数量 |
接口路径(新):http://api.okayapi.com/api/App/Table/ChangeNumber
接口路径(旧):http://api.okayapi.com/?s=App.Table.ChangeNumber
接口描述: U Increase or Decrese number for one filed by one ID. You can +1/-1.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
id | Int | Required | MIN: 1 | 数据ID | |
change_field | String | Required | 待修改数值的字段名 | ||
change_value | String | Required | 待叠加的数值,正数表示相加,负数表示相减,需要传递有效数值 |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.ChangeNumber&model_name=article&id=8&change_field=view_times&change_value=1&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"change_value": "1",
"after_value": "5"
},
"msg": ""
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.ChangeNumber', array('model_name' => 'telephone','id'=>3,'change_field'=>'mobile','change_value'=>'10'));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] =>
Array
(
[err_code] => 0
[err_msg] =>
[change_value] => 10
[after_value] => 13902928176
)
[msg] => 小白开放接口:App.Table.ChangeNumber
)
*/
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,修改失败(表单不存在或字段类型不是数值类型);2应用层规则拦截,拦截后可以小白开放平台查看日记;3数据不存在或已被删除 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
change_value | String | 回传客户端本次待更改的数值 |
after_value | String | 本次更新后,最新的字段值 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreeChangeNumber
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreeChangeNumber
接口描述: U The value of one or more fields can be modified according to multiple customized conditions (AND or OR), which can be increased or decreased. Note that this API can update multiple data rows.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
change_field | ArraySeperated with , | Required | 待修改数值的字段名,多个字段名用英文逗号分割。change_value和change_field分割后的数量应当相同。 | ||
change_value | ArraySeperated with , | Required | 待叠加的数值,正数表示相加,负数表示相减,需要传递有效数值。多个数值用英文逗号分割。change_value和change_field分割后的数量应当相同。 | ||
try_add_data | ArrayJSON Format | Optaion | 当无更新时尝试创建的数据,仅当无更新且有传此参数时才会进行数据创建。此参数可用于初始化等操作。此参数只用于初始化,不会再进行change_value的修改。 |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.FreeChangeNumber&model_name=article&where=[["id","=",8]]&change_field=view_times&change_value=1&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"change_value": "1",
"update_rows": 1
},
"msg": ""
}
如果想希望在更新失败时进行数据创建,可以使用try_add_data参数,从而减少多一次接口请求,以完成数据初始化操作。登录,请求:
{OKAYAPI_API_HOST}/?s=App.Table.FreeChangeNumber&model_name=article&logic=and&where=[["id", "=", "404"]]&change_field=view_times&change_value=2&try_add_data={"view_times":1}&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"change_value": "1",
"update_rows": 1
},
"msg": "V1.3.16 小白开放接口 App.Table.FreeChangeNumber"
}
这里接口结果返回的change_value对应本次try_add_data里面的初始化值。
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.FreeChangeNumber', array('model_name'=>'Price','where'=>json_encode(array(array("shangpin","LIKE","%葡萄%"))),'change_field'=>'price','change_value'=>'2'));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
[change_value] => 2
[update_rows] => 2
)
[msg] => 小白开放接口:App.Table.FreeChangeNumber
)
*/
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,修改失败(表单不存在或字段类型不是数值类型);2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
change_value | String | 回传客户端本次待更改的数值 |
details[].update_rows | Int | 本次的更新结果,对应更新的条目数量。没有更新或没有创建时为0,如果进行更新或初始化创建则为1,其他情况为对应更新的条目数量 |
接口路径(新):http://api.okayapi.com/api/App/Table/MultiFreeChangeNumber
接口路径(旧):http://api.okayapi.com/?s=App.Table.MultiFreeChangeNumber
接口描述: Patch U 可The value of one or more fields can be modified IN BATCHES according to multiple customized conditions (AND or OR), which can be increased or decreased. Note that this API can update multiple data rows.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
wheres | ArrayJSON Format | Required | 批量条件,格式为:wheres=[第一组,第二组,……]。每一组where参数格式如下:
SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| ||
change_field | ArraySeperated with , | Required | 待修改数值的字段名,多个字段名用英文逗号分割。change_value和change_field分割后的数量应当相同。 | ||
change_values | ArrayJSON Format | Required | 批量待叠加的数值,格式是:change_values=["第一组","第二组","……"]。每一组格式为:正数表示相加,负数表示相减,需要传递有效数值。多个数值用英文逗号分割。每一组和change_field分割后的数量应当相同。示例:change_values=["1","2"],更新多个值时的示例:["1,11","2,22"] | ||
try_add_datas | ArrayJSON Format | Optaion | 批量的初始化数据,格式为:try_add_datas=[第一组,第二组,……]。当无更新时尝试创建的数据,仅当无更新且有传此参数时才会进行数据创建。此参数可用于初始化等操作。try_add_datas要么不传,要么需要和change_values的数量保持一致,对于不需要初始化的可以设置为NULL。此参数只用于初始化,不会再进行change_value的修改。 |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.MultiFreeChangeNumber&model_name=article&logic=and&wheres=[[["id", "=", "404"]],[["id", "=", "405"]]]&change_field=view_times&change_values=["2","3"]&try_add_datas=[{"view_times":"1"},{"view_times":"3"}]&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"details": [
{
"err_code": 0,
"err_msg": "",
"change_value": "2",
"update_rows": 1
},
{
"err_code": 0,
"err_msg": "",
"change_value": "3",
"update_rows": 1
}
]
},
"msg": "V1.3.22 小白开放接口 App.Table.MultiFreeChangeNumber"
}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,修改失败(表单不存在或字段类型不是数值类型);2应用层规则拦截,拦截后可以小白开放平台查看日记,3表示部分失败,具体查看details批量结果 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
details | Array | 批量结果 |
details[].change_value | String | 回传客户端本次待更改的数值 |
details[].update_rows | Int | 每组数据的更新结果,对应更新的条目数量。没有更新或没有创建时为0,如果进行更新或初始化创建则为1,其他情况为对应更新的条目数量 |
details[].err_code | Int | 单次操作的操作码,当err_code为0时才表示正确执行,最终更新结果再看update_rows的返回 |
details[].err_msg | String | 单次操作的错误提示信息 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreeConcact
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreeConcact
接口描述: U You can modify the string content of one field based on multiple customized conditions (AND or OR), and you can append it to the front or splice it to the back. Delimiters are also supported.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
change_field | String | Required | 待修改字符串的字段名,如果不希望在前后出现多余的分割符,可将字段的默认值设置为NULL。 | ||
concact_str | String | Required | 待追加的字符串 | ||
seperator | String | Optaion | 分割符,默认为空字符串 | ||
side | Enum | Optaion | right | Range: right/left | 新增的追加在哪边,其中:
|
请求(where和where_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.FreeConcact&model_name=article&where=[["id", "=", 41]]&change_field=tag&concact_str=接口&seperator=,&side=right&app_key={你的app_key}&sign={动态签名}
请求(where和where_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.FreeConcact&model_name=article&where_id=41&change_field=tag&concact_str=接口&seperator=,&side=right&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"update_rows": 1
},
"msg": "小白开放接口:App.Table.FreeConcact"
}
假设id=41的数据,标签字段tag最初的默认值为NULL,那么第一次请求后,tag变成:接口。
当再次请求时,tag此时原来的内容是:接口。则会变成:接口,接口。中间有分割符逗号。
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,修改失败(表单不存在或字段类型不是数值类型);2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
update_rows | String | 本次更新的条数,没有更新时为0 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreeFindOne
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreeFindOne
接口描述: R Search and obtain one row data based on multiple customized conditions (AND or OR)
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
fields | ArraySeperated with , | Optaion | 需要返回的字段名,多个字段用英文逗号分割,示例:fields=id,uuid,add_time |
请求(where和where_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.FreeFindOne&model_name=article&where=[["title","=","123456"]]&app_key={你的app_key}&sign={动态签名}
请求(where和where_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.FreeFindOne&model_name=article&where_title=123456&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"data": {
"id": "5",
"uuid": "",
"add_time": "2018-06-27 22:13:28",
"update_time": null,
"ext_data": null,
"title": "123456",
"content": null,
"post_time": "1970-01-01 00:00:00",
"view_times": "0"
}
},
"msg": "",
"info": [
"当前请求接口:App.Table.FreeFindOne",
"小白入门教程:a.okayapi.com/Aa5PH4"
]
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.FreeFindOne', array('model_name'=>'telephone','where'=>json_encode(array(array("id",">","1"),array("id",">","3"))),'logic'=>'and'));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
[data] => Array
(
[id] => 2
[uuid] =>
[add_time] => 2019-02-02 22:49:18
[update_time] =>
[ext_data] =>
[mobile] => 13902985399
[mobile_status] => 1
)
)
[msg] => 小白开放接口:App.Table.FreeFindOne
)
*/
#!/usr/bin/python
#coding=utf-8
import requests
import hashlib
# TODO: 请根据需要,换成您的HOST,app_key和app_secrect
API_URL = '你的小白接口域名,例如:http://api.okayapi.com/'
APP_KEY = '你的app_key'
APP_SECRET = '你的app_secrect'
# 生成签名
def Signature(params, key=None, secret=None):
key = key or APP_KEY
secret = secret or APP_SECRET
params.pop('app_secrect', None)
params['app_key'] = key
md5_ctx = hashlib.md5()
md5_ctx.update(''.join([params[value] for value in sorted([key for key in params])]) + secret)
return md5_ctx.hexdigest().upper()
# 调用小白开放接口
def HTTPGet(url, params):
params['sign'] = Signature(params)
resp = requests.get(url, params)
return resp.json()
def main():
# 待请求的接口与相关参数(根据需要,可动态调整请求参数)
params = {
's': 'App.Table.FreeFindOne',
'model_name': 'okayapi_message',
'logic': 'or',
'where': json.dumps([['message_nickname', '=', 'hehe'], ['message_key', '=', 'a']])
}
# 发起请求
return HTTPGet(API_URL, params)
pprint.pprint(main())
# {u'data': {u'data': {u'add_time': u'2019-01-31 15:11:20',
# u'ext_data': None,
# u'id': u'4',
# u'message_content': u'<p><img src="http://img.baidu.com/hi/jx2/j_0002.gif"/></p><p>wala</p><pre class="brush:cpp;toolbar:false">#include <stdio.h></pre><p><br/></p>',
# u'message_key': u'a',
# u'message_nickname': u'hehe',
# u'message_pid': u'0',
# u'message_post_time': u'0000-00-00 00:00:00',
# u'update_time': None,
# u'uuid': u''},
# u'err_code': 0,
# u'err_msg': u''},
# u'msg': u'\u5f53\u524d\u5c0f\u767d\u63a5\u53e3\uff1aApp.Table.FreeFindOne',
# u'ret': 200}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,获取失败(表单不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记;3No-data-found |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
data | Object | 获取的数据,可以指定返回字段 |
接口路径(新):http://api.okayapi.com/api/App/Table/GetDataAfterChangeNum
接口路径(旧):http://api.okayapi.com/?s=App.Table.GetDataAfterChangeNum
接口描述: RU Search and obtain one row data based on multiple custom conditions (AND or OR), then perform addition and subtraction operations on the specified fields, and finally return the latest data.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
fields | ArraySeperated with , | Optaion | 需要返回的字段名,多个字段用英文逗号分割,示例:fields=id,uuid,add_time | ||
order | String | Optaion | id ASC | 排序规则,格式:字段名+空格+ASC|DESC,特别地,RAND表示随机排序。 | |
change_field | String | Required | 待加减的字段名 | ||
change_value | String | Required | 待加减的数字,正数表示相加,负数表示相减,需要传递有效数值。例如:change_value=1 |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.GetDataAfterChangeNum&model_name=article&logic=and&where=[["id", ">", "1"]]&fields=add_time&order=id asc&change_field=view_times&change_value=1&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"data": {
"view_times": 204,
"add_time": "2019-04-06 17:25:13"
},
"total": 23
},
"msg": "V2.1.0 果创云开放接口 App.Table.GetDataAfterChangeNum"
}
以上会把article文章表单的某一篇文章的阅读数view_times加1,然后返回最新的数据。
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,获取失败(表单不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记;3No-data-found |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
data | Object | 返回加减后的数据,没有数据时返回null;修改成功时固定会返回修改的字段更新后的最新值 |
total | Int | 符合条件的总数量 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreeRandOne
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreeRandOne
接口描述: R Randomly obtain one row data based on multiple custom conditions (AND or OR). The data is not modified or deleted after it is obtained.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id",">",0]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
fields | ArraySeperated with , | Optaion | 需要返回的字段名,多个字段用英文逗号分割,示例:fields=id,uuid,add_time |
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.FreeRandOne',array('model_name'=>'Price','where'=>json_encode(array(array("id","<","10")))));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
[data] => Array
(
[id] => 5
[uuid] =>
[add_time] => 2019-02-12 15:45:19
[update_time] =>
[ext_data] =>
[shangpin] => 苹果
[price] => 8
)
)
[msg] => 小白开放接口:App.Table.FreeRandOne
)
*/
#!/usr/bin/python
#coding=utf-8
import requests
import hashlib
# TODO: 请根据需要,换成您的HOST,app_key和app_secrect
API_URL = '你的小白接口域名,例如:http://api.okayapi.com/'
APP_KEY = '你的app_key'
APP_SECRET = '你的app_secrect'
# 生成签名
def Signature(params, key=None, secret=None):
key = key or APP_KEY
secret = secret or APP_SECRET
params.pop('app_secrect', None)
params['app_key'] = key
md5_ctx = hashlib.md5()
md5_ctx.update(''.join([params[value] for value in sorted([key for key in params])]) + secret)
return md5_ctx.hexdigest().upper()
# 调用小白开放接口
def HTTPGet(url, params):
params['sign'] = Signature(params)
resp = requests.get(url, params)
return resp.json()
def main():
# 待请求的接口与相关参数(根据需要,可动态调整请求参数)
params = {
's': 'App.Table.FreeRandOne',
'model_name': 'okayapi_message'
}
# 发起请求
return HTTPGet(API_URL, params)
pprint.pprint(main())
# {u'data': {u'data': {u'add_time': None,
# u'ext_data': None,
# u'id': u'3',
# u'message_content': u'\u597d\u7528\uff0c\u4e94\u661f\u597d\u8bc4\uff01',
# u'message_key': u'',
# u'message_nickname': u'\u6e38\u5ba2',
# u'message_pid': u'0',
# u'message_post_time': u'2019-01-30 20:00:00',
# u'update_time': None,
# u'uuid': u''},
# u'err_code': 0,
# u'err_msg': u''},
# u'msg': u'\u5f53\u524d\u5c0f\u767d\u63a5\u53e3\uff1aApp.Table.FreeRandOne',
# u'ret': 200}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,获取失败(表单不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记;3No-data-found;4当前取随机数据已超过10万条,为保证接口服务质量,请联系小白客服进行定制化。 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
data | Object | 获取的数据,可以指定返回字段 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreePopOne
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreePopOne
接口描述: RUUnique Search and obtain one row data based on multiple custom conditions (AND or OR), and change the fields after obtaining the data, thereby achieving the acquisition of non-duplicate data.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
fields | ArraySeperated with , | Optaion | 需要返回的字段名,多个字段用英文逗号分割,示例:fields=id,uuid,add_time | ||
data | ArrayJSON Format | Optaion | 待更新的数据(注意!获取到数据后将会进行此更新),需要JSON编码后传递。格式:data={"字段名1":"字段值1","字段名2":"字段值2"...}。JSON Parser Online | ||
order_type | Int | Optaion | 1 | 排序类型,默认order_type=1,表示按默认的顺序,即ID升序;order_type=2时表示ID降序;order_type=3表示随机排序,将能更好地实现高并发下的非重复获取(为保证接口质量,随机排序取的数据量超过10W,请联系小白客服进行定制化!);order_type=4表示更新时间update_time升序;order_type=5表示更新时间update_time降序; |
请求(使用data的JSON格式传递,data和data_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.FreePopOne&model_name=article&where=[["state", "=", 0]]&data={"state":1}&app_key={你的app_key}&sign={动态签名}
请求(使用data_X动态参数传递,data和data_X二选一)(where和where_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.FreePopOne&model_name=article&where_state=0&data_state=1&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"data": {
"id": "2",
"uuid": "",
"add_time": "2018-04-09 23:42:25",
"update_time": ,
"ext_data": ,
"title": "xx",
"content": "yy",
"post_time": "1970-01-01 00:00:00",
"view_times": "2",
"state": "0"
}
},
"msg": ""
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.FreePopOne', array('model_name'=>'telephone','where'=>json_encode(array(array("mobile_status","=","0"))),'data'=>json_encode(array('mobile_status'=>'1'))));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
[data] => Array
(
[id] => 4
[uuid] =>
[add_time] => 2019-02-03 22:22:38
[update_time] =>
[ext_data] =>
[mobile] => 18233330221
[mobile_status] => 0
)
)
[msg] => 小白开放接口:App.Table.FreePopOne
)
*/
#!/usr/bin/python
#coding=utf-8
import requests
import hashlib
# TODO: 请根据需要,换成您的HOST,app_key和app_secrect
API_URL = '你的小白接口域名,例如:http://api.okayapi.com/'
APP_KEY = '你的app_key'
APP_SECRET = '你的app_secrect'
# 生成签名
def Signature(params, key=None, secret=None):
key = key or APP_KEY
secret = secret or APP_SECRET
params.pop('app_secrect', None)
params['app_key'] = key
md5_ctx = hashlib.md5()
md5_ctx.update(''.join([params[value] for value in sorted([key for key in params])]) + secret)
return md5_ctx.hexdigest().upper()
# 调用小白开放接口
def HTTPGet(url, params):
params['sign'] = Signature(params)
resp = requests.get(url, params)
return resp.json()
def main():
# 待请求的接口与相关参数(根据需要,可动态调整请求参数)
params = {
's': 'App.Table.FreePopOne',
'model_name': 'okayapi_message',
'logic': 'or',
'where': json.dumps([['message_nickname', '=', 'hehe'], ['message_key', '=', 'a']]),
'data': json.dumps({'message_key': 'cba'})
}
# 发起请求
return HTTPGet(API_URL, params)
pprint.pprint(main())
# {u'data': {u'data': {u'add_time': u'2019-01-31 15:11:20',
# u'ext_data': None,
# u'id': u'4',
# u'message_content': u'<p><img src="http://img.baidu.com/hi/jx2/j_0002.gif"/></p><p>wala</p><pre class="brush:cpp;toolbar:false">#include <stdio.h></pre><p><br/></p>',
# u'message_key': u'a',
# u'message_nickname': u'hehe',
# u'message_pid': u'0',
# u'message_post_time': u'0000-00-00 00:00:00',
# u'update_time': u'2019-02-01 14:17:21',
# u'uuid': u''},
# u'err_code': 0,
# u'err_msg': u''},
# u'msg': u'\u5f53\u524d\u5c0f\u767d\u63a5\u53e3\uff1aApp.Table.FreePopOne',
# u'ret': 200}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,获取失败(表单不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记;3No-data-found;4当前取随机数据已超过10万条,为保证接口服务质量,请联系小白客服进行定制化。 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
data | Object | 获取的数据,可以指定返回字段 |
接口路径(新):http://api.okayapi.com/api/App/Table/DropOneByOne
接口路径(旧):http://api.okayapi.com/?s=App.Table.DropOneByOne
接口描述: RDUnique The data is obtained in ascending order according to the primary key ID, and deleted immediately after retrieval, thereby achieving the acquisition of non-duplicate data. This interface can ensure non-duplication of data even under high concurrency.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.DropOneByOne&model_name=article&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"data": {
"id": "1",
"uuid": "",
"title": "小接口做大事情!",
"add_time": "2019-01-26 18:04:30"
}
},
"msg": ""
}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,获取失败(表单不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记;3No-data-found;4并发太大,请稍候重试! |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
data | Object | 获取到的非重复数据,即整条纪录数据。 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreeMin
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreeMin
接口描述: R Get the minimum value of a field based on multiple custom conditions (AND or OR)
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
field | String | Required | 取哪个字段的最小值,如:field=id |
请求(where和where_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.FreeMin&model_name=article&where=[["id", "<", 3]]&field=view_times&app_key={你的app_key}&sign={动态签名}
请求(where和where_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.FreeMin&model_name=article&where_id=LT-3&field=view_times&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"min": "2"
},
"msg": ""
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.FreeMin', array('model_name'=>'Price','where'=>json_encode(array(array("shangpin","LIKE","%葡萄%"))),'field'=>'price'));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
[min] => 16
)
[msg] => 小白开放接口:App.Table.FreeMin
)
*/
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,获取失败(表单不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记;3No-data-found |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
min | String | 获取的最小值 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreeMax
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreeMax
接口描述: R Get the MAX value of a field based on multiple custom conditions (AND or OR)
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
field | String | Required | 取哪个字段的最大值,如:field=id |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.FreeMax&model_name=article&where=[["id", "<", 3]]&field=view_times&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"max": "5"
},
"msg": ""
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.FreeMax', array('model_name'=>'Price','where'=>json_encode(array(array("shangpin","LIKE","%葡萄%"))),'field'=>'price'));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
[max] => 20
)
[msg] => 小白开放接口:App.Table.FreeMax
)
*/
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,获取失败(表单不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记;3No-data-found |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
max | String | 获取的最大值 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreeAggregation
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreeAggregation
接口描述: RStat Perform aggregation operations such as SUM/COUNT/MIN/MAX/AVG based on multiple customized conditions (AND or OR), and supports aggregation operations on multiple fields.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
op_funs | ArraySeperated with , | Required | MIN: 1 | 聚合函数操作,支持多个聚合运算,目前支持:SUM/COUNT/MIN/MAX/AVG,分别表示:求和/数目/最小/最大/平均数,注意全部大写,多个用英文逗号分割。 | |
op_fields | ArraySeperated with , | Required | 进行聚合的字段名称,需要和op_funs的运算一一对应,,多个用英文逗号分割。例如:假设op_funs=SUM,COUNT,同时op_fields=price,id,那么最终相当于:SUM(price), COUNT(id),返回结果字段是:SUM_price, COUNT_id | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.FreeAggregation&model_name=article&op_funs=COUNT,SUM&op_fields=id,view_times&logic=and&where=[["git_author", "=", "dogstar"]]&app_key={你的app_key}&sign={动态签名}
返回(计算某位作者共发表多少张文章,以及合计的阅读数量):
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"report": {
"COUNT_id": 5,
"SUM_view_times": "760"
}
},
"msg": "小白开放接口:App.Table.FreeAggregation"
}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,获取失败(表单不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记;3No-data-found |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
report | Object | 聚合运算的表格数据 |
report.SUM_field | mixed | 返回的字段是动态的名称,字段名是:聚合运算名+下划线+字段名,例如:SUM_field。失败时返回 NULL,根据运算和字段类型不同,返回结果可能是int,也可能是string类型,或浮点数。 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreeSum
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreeSum
接口描述: RStat Calculate the sum of a certain field based on multiple custom conditions (AND or OR)
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
field | String | Required | 取哪个字段的总和,如:field=money |
请求(where和where_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.FreeSum&model_name=article&logic=or&where=[["id","=",1],["id","=",5]]&field=view_times&app_key={你的app_key}&sign={动态签名}
请求(where和where_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.FreeSum&model_name=article&logic=or&where_id=1||5&field=view_times&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"sum": "5"
},
"msg": ""
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.FreeSum',array('model_name'=>'Price','where'=>json_encode(array(array("shangpin","=","苹果"))),'field'=>'price'));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
[sum] => 20
)
[msg] => 小白开放接口:App.Table.FreeSum
)
*/
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,获取失败(表单不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记;3No-data-found |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
sum | String | 总和 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreeDelete
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreeDelete
接口描述: D Multiple pieces of data can be deleted based on multiple customized conditions (AND or OR). Once the data is deleted, it cannot be recovered, so please operate with caution!
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
max_delete_num | Int | Optaion | 0 | MIN: 0 | 最多删除多少条,0表示无限制,即全部删除 |
请求(where和where_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.FreeDelete&model_name=article&where=[["id","=",4]]&max_delete_num=1&app_key={你的app_key}&sign={动态签名}
请求(where和where_X二选一):
{OKAYAPI_API_HOST}/?s=App.Table.FreeDelete&model_name=article&where_id=4&max_delete_num=1&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"delete_total": 0
},
"msg": ""
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.FreeDelete', array('model_name'=>'Price','where'=>json_encode(array(array("shangpin","=","橘子"))),'logic'=>'or'));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
[delete_total] => 1
)
[msg] => 小白开放接口:App.Table.FreeDelete
)
*/
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,删除失败(表单不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
delete_total | Int | 删除的条目数量 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreeMultiCal
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreeMultiCal
接口描述: PatchU According to the conditions, four arithmetic operations are performed in batches, such as: addition/subtraction/multiplication/division. For example, field=x, op=add, number=1, the combination means: x=x+1.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) | ||
field | String | Required | 待更新的字段,如:field=money,此字段必须为数值类型 | ||
op | Enum | Required | Range: add/sub/mul/div | 运算符号,加:add,减:sub,乘:mul,乘:div | |
number | String | Required | 待运算的数字,例如加多少,减多少,乘多少,除多少。必须为合法的数字,可以是小数 |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.FreeMultiCal&model_name=article&where=[["id","=","1"]]&field=view_times&op=add&number=1&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"update_rows": 1
},
"msg": ""
}
<?php
// 引入文件
require_once dirname(__FILE__) . '/OkayApiClient.php';
// 调用小白开放接口
$rs = OkayApiClient::request('App.Table.FreeMultiCal', array('model_name'=>'Price','where'=>json_encode(array(array("shangpin","LIKE","%葡萄%"))),'field'=>'price','op'=>'mul','number'=>'0.5'));
// 输出结果
print_r($rs);
/*
Array
(
[ret] => 200
[data] => Array
(
[err_code] => 0
[err_msg] =>
[update_rows] => 2
)
[msg] => 小白开放接口:App.Table.FreeMultiCal
)
*/
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,删除失败(表单不存在);2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
update_rows | String | 本次更新的条数,没有更新时为0 |
接口路径(新):http://api.okayapi.com/api/App/Table/GetOneDataByOneField
接口路径(旧):http://api.okayapi.com/?s=App.Table.GetOneDataByOneField
接口描述: R Get one record data by one filed.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
field_name | String | Required | 需要匹配的表单字段名称 | ||
field_value | String | Required | 需要查找和对比的字段值 | ||
select | ArraySeperated with , | Optaion | 需要返回的字段,默认返回全部字段,多个字段用英文逗号分割,如:select=id,uuid |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.GetOneDataByOneField&model_name=article&field_name=title&field_value=aaa&select=title,view_times,add_time&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"data": {
"id": 42,
"title": "aaa",
"view_times": 0,
"add_time": "2019-11-29 15:25:16"
}
},
"msg": "V1.3.22 小白开放接口 App.Table.GetOneDataByOneField"
}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误,修改失败(表单不存在或字段类型不是数值类型);2应用层规则拦截,拦截后可以小白开放平台查看日记,3数据不存在或已删除 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
data | Object | 查找到的数据,如果未找到则为null。其中,id字段固定返回。 |
接口路径(新):http://api.okayapi.com/api/App/Table/GetMoreDataByMoreField
接口路径(旧):http://api.okayapi.com/?s=App.Table.GetMoreDataByMoreField
接口描述: R Get more data with more fields.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
field_name_list | ArraySeperated with , | Required | MIN: 1 | 需要匹配的表单字段名称列表,多个字段用英文逗号分割,如:field_name_list=title,name | |
field_value_list | ArraySeperated with , | Required | MIN: 1 | 需要查找和对比的字段值列表,多个值用英文逗号分割,如:field_value_list=标题,小白 。字段值不能含有英文逗号。field_value_list数量必须和field_name_list数量保持一致。 | |
select | ArraySeperated with , | Optaion | 需要返回的字段,默认返回全部字段,多个字段用英文逗号分割,如:select=id,uuid | ||
page | Int | Optaion | 1 | MIN: 1 | 第几页 |
perpage | Int | Optaion | 20 | MIN: 1;MAX: 10000 | 分页数量 |
请求:
{OKAYAPI_API_HOST}/?s=App.Table.GetMoreDataByMoreField&model_name=article&logic=and&field_name_list=title,view_times&field_value_list=aaa,0&select=title,view_times,add_time&app_key={你的app_key}&sign={动态签名}
返回:
{
"ret": 200,
"data": {
"err_code": 0,
"err_msg": "",
"items": [
{
"title": "aaa",
"view_times": 0,
"add_time": "2019-11-29 15:25:16"
},
{
"title": "aaa",
"view_times": 0,
"add_time": "2019-12-15 22:03:40"
}
]
},
"msg": "V1.3.22 小白开放接口 App.Table.GetMoreDataByMoreField"
}
KEY | Type | Description |
---|---|---|
err_code | Int | 状态操作码,0成功;1开发类错误;2应用层规则拦截,拦截后可以小白开放平台查看日记 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
items | Object | 查找到的数据列表,如果未找到则为空数组。默认返回20条,ID升序获取。 |
接口路径(新):http://api.okayapi.com/api/App/Table/FreeReplace
接口路径(旧):http://api.okayapi.com/?s=App.Table.FreeReplace
接口描述: Patch U Replace the field from one string to other string.
Parameter | Type | Required | Default | Note | Description |
---|---|---|---|---|---|
HTTP_APPKEY | String | Required | MIN: 32 | Common Put Your APPKEY | |
model_name | String | Required | Your table Model Name | ||
field_name | String | Required | 字段名称,需要替换的字段名 | ||
from_str | String | Required | 要替换的子字符串 | ||
to_str | String | Required | 新的替换子字符串,不能和from_str一样 | ||
logic | Enum | Optaion | and | Range: and/or | Where condition logic, logic=and for logical and, logic=or for logical or |
where | ArrayJSON Format | Optaion | [["id", ">=", "1"]] | SQL WHERE condition, JSON format: [condition_1, condition_2, ...] EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
| |
where_X | String | Optaion | 动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值 。支持的比较符和示例如下:
|| 分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先) |
KEY | Type | Description |
---|---|---|
err_code | Int | 操作状态码,0表示成功,1表示更新失败,2表示表单规则不通过 |
err_msg | String | 错误提示信息,err_code非0时参考此提示信息 |
update_total | Int | 成功更新的数量 |
Power by OkayAPI.com Contact us (WA: okayapi OR Email: chanzonghuang@gmail.com).
Timezone: America/New_York Mar/28/2024 19:05:24