第 9篇 使用REST API来添加记录

aki发表于:2016年11月04日 17:05:27更新于:2023年07月28日 16:06:32

概要

上一篇我们首次挑战了更新时的处理!这一次,我们来接着挑战使用REST API来添加记录的处理吧!(^^)

那么,让我们来一边创建用于记录“每个用户查看了什么应用里的什么记录”的查看日志,一边来学习REST API吧!(^^♪

准备应用

首先准备以下应用,用于保存查看日志。

001581c4f8b322c686628c780391da5

字段名称

字段类型

字段代码

查看的应用的ID

数值

查看的应用的ID

查看的记录的ID

数值

查看的记录的ID

查看人

创建人

查看人

查看时间

创建时间

查看时间

请注意:用于保存查看人的字段【查看人】的类型是【创建人】。那是因为需要输出日志的其他应用的查看人=通过API将数据登记到本应用的用户。【查看时间】字段也同理。

还有一点要注意的是,不要忘记将这个应用的访问权限设为Everyone。创建之后,应用ID之后会使用到所以先记录下来。φ( ̄ー ̄ )记下记下

获取需要登记的值

以下两个需要登记到本应用的值,在插入数据时kintone将自动插入正确的值,因为不需要您做什么。

  • 查看人(创建人)

  • 查看时间(创建时间)

剩下两个字段是【查看的应用的ID】和【查看的记录的ID】,这两个数据放在记录详情页面显示时的事件的event对象的属性里,我们就用这个。

(function() {
    "use strict";
    kintone.events.on('app.record.detail.show', function(event) {
        // 获取应用ID
        var appId = event.appId;
        // 获取记录编号
        var recordId = event.recordId;
        alert('appId: ' + appId + ', recordId: ' + recordId);
    });
})();

001581c5651ac1bc28e2d73508c1f44

忘记了event对象的属性的同学,请回去再复习一下第 4篇 使用记录的(详细页面篇)吧(^^)

那么,我们试着来动手做做吧。将以下脚本上传到需要收集查看日志的应用(不是刚才做的应用)中,然后打开刚才做的应用的详情页面看看吧。

001581c5950c789b66d6796378cfe7f

上图是在第 6篇 使用表格 中创建的J爷爷的应用上执行时的结果,跟我们预想的一样正确获取了值了吧。

使用REST API

接下来,实际操作一下往应用中添加数据。需要用到kintone REST API添加记录(POST)。在kintone的JavaScript上使用REST API需要用到kintone REST API 请求 ,首先从这个开始说起。

00158d9f52844845b1d9fda008dbf08

各参数中到底要放什么内容,根据实际中使用到的REST API而定。我们就对照着添加记录(POST)的添加记录(1条)中的内容,一个一个填进去。

 

pathOrUrl

参数的说明中也提到,此项要放kintone.api.url。另外,kintone的REST API如果是用于来宾空间内的应用,路径会变化,因此为了避免事后发生混乱,要养成在第2参数填写true的习惯。详情请参考获取URL(没有查询字符串)及在将来宾空间内应用的记录发布到空间内应用(日文)。

 

method

这次要使用的API(/k/v1/record.json),可以在同一个URL的情况下,根据请求的HTTP方法不同而执行不同的处理。

  • GET: 获取记录(1条)

  • POST: 添加记录(1条)

  • PUT: 更新记录(1条)

这次要做的处理是往查看日志应用中插入数据,所以使用'POST'。

 

params

参考着添加记录(1条)的请求属性,试着编写并发送JSON格式的参数。

001581c5a34a8b318bb68f1e133b3f3

至于细节,对着写好的代码来说明会比较好理解。下面就是实际做成的脚本。用于保存查看日志的应用的ID,大家根据自己环境改成实际的应用ID,然后上传到要留下日志的应用中(如果是上面的列子的话,就是上传到J爷爷的应用中)。可以在多个应用中上传。


(function() {
    "use strict";
    kintone.events.on('app.record.detail.show', function(event) {
        // 获取应用ID
        var appId = event.appId;
        // 获取记录编号
        var recordId = event.recordId;
        // 请求属性(JSON)
        var params = {
            "app": 1,  // ← 请替换成实际存放日志的应用ID
            "record": {
                "查看的应用的ID": { "value": appId },
                "查看的记录的ID": { "value": recordId }
            }
        };
        // kintone REST API 请求 ~ 添加记录(POST)
        kintone.api(
            kintone.api.url('/k/v1/record', true), // - pathOrUrl
            'POST',                                // - method
            params,                                // - params
            function(resp) {                       // - callback
                // (什么也不干)
        },
            function(resp) {                       // - errback
                // (什么也不干)
        }
        );
    });
})();

001581c5bf246de1ff3543cabdb8209

查看过记录的应用,其查看信息都被记录下来了吧。\(*^▽^*)ノ
只要理解了,就没有什么难的了。

REST API相关的便利工具

目前有几款便利的库可帮你更加轻松地执行 kintone REST API 。
使用以下库,只要调用已经帮你准备好的方法,即可便利地执行 kintone REST API ,节省代码量。除了 kintone 提供的 kintone REST API ,还有可批量处理记录的方法,以及其他一些便利的方法。

   如果您想了解其使用方法,请参考以下文章。

最后

这次通过挑战具有实践意义的更新处理,第一次接触了kintone REST API的使用方法。使用REST API可以做比这个更加强大的kintone自定义。下次,将继续给大家详细解说。

Let's kintone customize\(^o^)/

该Tips在2014年6月版中进行过确认。

<<第 8篇 挑战简单的更新处理 | 第 10篇 使用REST API获取记录>>