添加记录(POST)

aki发表于:2016年08月29日 15:22:42更新于:2021年08月09日 11:33:39

Index

添加记录(1条)

有记录添加权限的用户可添加1条记录。

  • 设置为必填项时,请求中必须包含该项的值。

HTTP 方法

POST

URI

https://(子域名).cybozu.cn/k/v1/record.json

来宾空间内的应用

https://(子域名).cybozu.cn/k/guest/(空间的ID)/v1/record.json 

必要的访问权限

  • 应用的记录添加权限

  • 要添加值的记录的编辑权限

  • 要添加值的字段的编辑权限

向以下字段添加值时,需要应用的管理权限。

  • 创建人

  • 更新人

  • 创建时间

  • 更新时间

请求参数

参数名要指定的值必须说明
app数值或字符串必须指定应用的ID。
recordObject可省略使用对象指定记录的信息(字段代码和字段的值)。
  • 字段值的规格根据字段格式的不同而不同。详情请参考 字段格式

  • 省略时,所有字段的值都作为初始值来添加。

  • 指定的字段代码不存在时,将被忽略。

请求正文的构成
{
    "app": "(应用ID)",
    "record": {
        "(字段代码)": {
            "value": "(字段的值)"
        },
        "(表格的字段代码)": {
            "value": [
                {
                    "value": {
                        "(字段代码)": {
                            "value": "(字段的值)"
                        }
                    }               
                }
            ]
        }
    }
}


请求的范例

请求头部

POST /k/v1/record.json HTTP/1.1
Host: example.cybozu.cn:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
Content-Type: application/json
  • 请在Content-Type中指定application/json。如不指定,JSON 无法识别,执行时将报错。

正文

在应用编号为【1972】的应用中添加以下记录时

字段的格式字段代码
单行文本框单行文本框测试
多行文本框多行文本框测试\n测试2
数值数值20
日期与时间日期与时间2014-02-16T08:57:00Z
复选框复选框sample1、 sample2
选择用户选择用户sato ※指定登录名称
下拉菜单下拉菜单Sample1
链接链接_网页https://www.cybozu.cn
表格Table
表格内的单行文本框表格字符串测试
{
    "app": 1972,
    "record": {
        "单行文本框": {
            "value": "测试"
        },
        "多行文本框": {
            "value": "测试\n测试2"
        },
        "数值": {
            "value": "20"
        },
        "日期与时间": {
            "value": "2014-02-16T08:57:00Z"
        },
        "复选框": {
            "value": [
                "sample1",
                "sample2"
            ]
        },
        "选择用户": {
            "value": [
                {
                    "code": "sato"
                }
            ]
        },
        "下拉菜单": {
            "value": "sample1"
        },
        "链接_网页": {
            "value": "https://www.cybozu.cn"
        },
        "Table": {
            "value": [
                {
                    "value": {
                        "表格字符串": {
                            "value": "测试"
                        }
                    }
                }
            ]
        }
    }
}

应答的范例

返回添加成功的记录的记录ID和修订号。

{
    "id": "100",
    "revision": "1"
}

JavaScript范例

使用API请求发送 kintone REST API 请求

var body = {
    "app": 1,
    "record": {
        "单行文本框": {
            "value": "ABC"
        }
    }
};

kintone.api(kintone.api.url('/k/v1/record', true), 'POST', body, function(resp) {
        // success
        console.log(resp);
    }, function(error) {
        // error
        console.log(error);
    });

使用 XMLHttpRequest 请求

var body = {
    "app": 1,
    "record": {
        "单行文本框": {
            "value": "ABC"
        }
    },
    // CSRF TOKEN: 在kintone上执行API(POST, PUT, DELETE)时选择设置
    "__REQUEST_TOKEN__": kintone.getRequestToken()
};

var url = 'https://{subdomain}.cybozu.cn/k/v1/record.json';
var xhr = new XMLHttpRequest();
xhr.open('POST', url);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onload = function() {
    if (xhr.status === 200) {
        // success
        console.log(JSON.parse(xhr.responseText));
    } else {
        // error
        console.log(JSON.parse(xhr.responseText));
    }
};
xhr.send(JSON.stringify(body));

批量添加记录

有记录添加权限的用户可批量添加多条记录。

  • 一次最多可添加100条记录。

  • 设置为必填项时,请求中必须包含该项的值。

  • 按照请求的 records参数中指定的顺序依次添加记录。根据请求中指定的记录顺序依次生成记录编号ids。

  • 批量添加失败时,请求中的所有记录的处理都将被取消。

HTTP 方法

POST

URI

https://(子域名).cybozu.cn/k/v1/records.json

来宾空间内的应用

https://(子域名).cybozu.cn/k/guest/(空间的ID)/v1/records.json 

必要的访问权限

  • 应用的记录添加权限

  • 要添加值的记录的编辑权限

  • 要添加值的字段的编辑权限

向以下字段添加值时,需要应用的管理权限。

  • 创建人

  • 更新人

  • 创建时间

  • 更新时间

请求参数

参数名要指定的值必须说明
app数值或字符串必须指定应用的ID。
records数组
(Object)
必须指定要添加的记录的信息。在本参数的值中指定record对象的数组。
使用对象指定数组中的记录信息(字段代码和字段的值)。
  • 字段值的规格根据字段格式的不同而不同。详情请参考 字段格式

  • 省略时,所有字段的值都作为初始值来添加。

  • 指定的字段代码不存在时,将被忽略。

请求正文的构成(※添加n条记录时)
{
    "app": (应用的ID),
    "records": [
        {   // 第1条数据
            "(字段代码)": {
                "value": (字段的值)
            },
            "(字段代码)": {
                "value": (字段的值)
            },
            :
        },
        {   // 第2条数据
            "(字段代码)": {
                "value": (字段的值)
            },
            "(字段代码)": {
                "value": (字段的值)
            },
            :
        },
        :
        {   // 第n条数据
            :
        }
    ]
}

请求的范例

正文

在应用ID为【1972】的应用中添加以下2条记录时

第1条

字段的格式字段代码
文本编辑框rich_editortest1
选择用户user_select登录名:zhou

第2条

字段的格式字段代码
文本编辑框rich_editortest2
选择用户user_select登录名称:chen
{
    "app": 1972,
    "records": [
        {
            "rich_editor": {
                "value": "test1"
            },
            "user_select": {
                "value": [
                    {
                        "code": "zhou"
                    }
                ]
            }
        },
        {
            "rich_editor": {
                "value": "test2"
            },
            "user_select": {
                "value": [
                    {
                        "code": "chen"
                    }
                ]
            }
        }
    ]
}

应答的范例

返回添加成功的记录的记录ID和修订号。

根据请求中指定的记录顺序依次生成记录编号ids。

{
    "ids": ["100","101"],
    "revisions": ["1","1"]
}

JavaScript范例

使用API请求发送 kintone REST API 请求

var body = {
    "app": 1,
    "records": [
        {
            "单行文本框": {
                "value": "ABC"
            }
        },
        {
            "单行文本框": {
                "value": "ABC"
            }
        }
    ]
};

kintone.api(kintone.api.url('/k/v1/records', true), 'POST', body, function(resp) {
        // success
        console.log(resp);
    }, function(error) {
        // error
        console.log(error);
    });

使用 XMLHttpRequest 请求

var body = {
    "app": 1,
    "records": [
        {
            "单行文本框": {
                "value": "ABC"
            }
        },
        {
            "单行文本框": {
                "value": "ABC"
            }
        }
    ],
    // CSRF TOKEN: 在kintone上执行API(POST, PUT, DELETE)时选择设置
    "__REQUEST_TOKEN__": kintone.getRequestToken()
};

var url = 'https://{subdomain}.cybozu.cn/k/v1/records.json';
var xhr = new XMLHttpRequest();
xhr.open('POST', url);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onload = function() {
    if (xhr.status === 200) {
        // success
        console.log(JSON.parse(xhr.responseText));
    } else {
        // error
        console.log(JSON.parse(xhr.responseText));
    }
};
xhr.send(JSON.stringify(body));

限制事项

  • 以下字段无法添加值。

    • 值是通过Lookup复制来输入的字段

    • 状态

    • 类别

    • 计算

    • 执行者

其他请参考限制事项


回复(11)

  • betsy_yan

    已修改,谢谢提醒

    引用 dd000 的回复:

    有个小错误应答的范例中的格式缺少逗号,第一行id后面要加逗号两个范例都有错,请修改下O(∩_∩)O

  • dd000

    有个小错误

    应答的范例中的格式缺少逗号,第一行id后面要加逗号

    两个范例都有错,请修改下

    O(∩_∩)O

  • 兰八德

    谢谢你的帮助

    引用 cybozu 的回复:

    请用这个格式添加表格数据12345678910111213141516171819{    "app": "(应用ID)",    "record": {        "(字段代码)": {            "value": "(字段的值)"        },        "(表格的字段代码)": {            "value": [                {                    "value": {                        "(字段代码)": {                            "value": "(字段的值)"                        }                    }                               }            ]        }    }}

  • cybozu

    请用这个格式添加表格数据

    {
        "app": "(应用ID)",
        "record": {
            "(字段代码)": {
                "value": "(字段的值)"
            },
            "(表格的字段代码)": {
                "value": [
                    {
                        "value": {
                            "(字段代码)": {
                                "value": "(字段的值)"
                            }
                        }               
                    }
                ]
            }
        }
    }

    引用 兰八德 的回复:

    你好,我POST数据,也得到应答了,但是表里面添加的数据都是空行,请问可能是什么原因呢

  • 兰八德

    你好,我POST数据,也得到应答了,但是表里面添加的数据都是空行,请问可能是什么原因呢

  • betsy_yan

    你可以删了试一下,如果不行你再看一下你的写法是否正确。

    引用 closer 的回复:

    用post方法上传数据,后台报错:基础连接已关闭,发送时发生错误,上传的json不能包含创建人,创建时间那些吗

  • closer

    用post方法上传数据,后台报错:基础连接已关闭,发送时发生错误,上传的json不能包含创建人,创建时间那些吗

  • betsy_yan

    可以啊,不管这个字段是否在表格里都可以获取。

    你在本网站上搜索“获取”就会出现你想要的内容,比如获取应用的信息、获取记录详细信息等等。

    引用 closer 的回复:

    请问,能否从A应用的表格里面获取字段用api的的方式传到B应用的文本框里面

  • closer

    请问,能否从A应用的表格里面获取字段用api的的方式传到B应用的文本框里面

  • betsy_yan

    可能有以下几个原因:

    1. 请求正文(Request body)大小超过最大50 MB

    2. 应用字段超过500个

    3. 一个应用安装插件超过20个

    等等

    其他限制可以查看以下链接:

    https://jp.cybozu.help/k/zh/admin/limitation/limit.html

    引用 closer 的回复:

    请问,画面报这个错是APP的数据打不开了吗错误。无法加载记录。处理失败。请减少要更新或参照的记录数。(GAIA_TL01 iLMjga5CN6vjl6wVOQ6V)

  • closer

    请问,画面报这个错是APP的数据打不开了吗

    错误。

    • 无法加载记录。

    • 处理失败。请减少要更新或参照的记录数。

    • (GAIA_TL01 iLMjga5CN6vjl6wVOQ6V)