2015年4月8日水曜日

kintone@REST API@レコードを登録(INSERT)する

●背景
「つべこべ言わずに、動くソースをくれよ」

パート2である。

・指定したアプリに1レコード登録する。
・データは当該アプリで画面入力されている名前と年齢
 (自アプリにも、指定先アプリにも名前、年齢のテキストボックスが必要)
・登録できたらレコード番号を、できなかったら-1を返却する

●サンプルコード
    /***************************************************************************************************
    * function insertRec
    * 登録できた場合はレコード番号を返却する。
    * 登録できなかった場合は-1を返却する。
    ***************************************************************************************************/
    function insertRec(event, appID) {
        // 返却値
        var lastRID = -1;

        var param =
        {
            "app": appID,
            "record":
            {
                "名前": { "value": event['record']['名前']['value'] },
                "年齢": { "value": event['record']['年齢']['value'] },
            }
        }
        // CSRFトークンの取得
        var token = kintone.getRequestToken();
        param["__REQUEST_TOKEN__"] = token;
        // 同期リクエストを行う
        var appUrl = kintone.api.url('/k/v1/record');
        var xmlHttp = new XMLHttpRequest();
        xmlHttp.open('POST', appUrl, false);
        xmlHttp.setRequestHeader('Content-Type', 'application/json');
        xmlHttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
        xmlHttp.send(JSON.stringify(param));
        if (xmlHttp.status == 200) {
            var respdata = JSON.parse(xmlHttp.responseText);
            lastRID = respdata["id"];
        }
        return lastRID;
    }
●解説
・SELECTでやった解説は除外します。

・param
 appとrecordで構成されるよ。詳しくは「レコードの登録(POST)

・xmlHttp.open('POST', appUrl, false);
 GETじゃなくてPOSTになる。

・xmlHttp.send(JSON.stringify(param));
 今回は取得ではなく登録なので、
 nullではなくて、JSON形式のデータを送る。

・var respdata = JSON.parse(xmlHttp.responseText);
 登録結果のレスポンス内容を受け取る。

・lastRID = respdata["id"];
 レスポンスの中からレコード番号を取得。

・今回は1レコードなので'/k/v1/record'を指定した。

・複数レコードの場合は以下の内容が変わる
  →'/k/v1/record'が'/k/v1/records'になる
  →paramの"record"が"records"になる
  →paramの"records"の右辺(:の右側)が配列になる

0 件のコメント:

コメントを投稿