kintone REST API について (POST編)

kintone REST API について (POST編):


はじめに

前回の記事 の続きです。

連載記事一覧

タイトル
1 kintoneの使い方 (データベース編)
2 kintone REST API について (共通事項編)
3 kintone REST API について (GET編)
4 kintone REST API について (POST編) ← 本記事
今回はREST APIを使って、kintoneにデータを 登録 する方法について説明します!


レコード1件を登録

とりあえず、レコード1件 登録する方法について説明します。

文字列1行フィールド (フィールドコード:text) でやります


共通項目

レコード1件を登録するための共通項目 (共通項目についてはこちら) は、

  • URI

    • https://(サブドメイン名).cybozu.com/k/v1/record.json
  • メソッド

    • POST
  • ヘッダー


    • APIトークン認証 (APIトークン発行時に「レコード追加」にチェックをしてください)
    • Content-Type: applicatioin/json
  • リクエストパラメータ

    • アプリID: 100

    • レコードID: 1 (POSTの場合は必要ありません)

    • レコード情報 ※初登場!(↓で説明します)
となります。


レコード情報

POST (PUT) の場合、どんなレコード情報 で登録(更新)するのか指定する必要があります!

今回であれば「textというフィールドにどんな文字列を入れたいか」です。

それを record オブジェクトで指定します。kintone独自の書き方になるのでぜひ覚えてください!!

//  一般的な書き方 
let obj = { 
  'record': { 
    'フィールドコード': { 
      'value': '(挿入したい値)' 
    } 
  } 
} 
 
// 今回の例だと 
let obj { 
  'record': { 
    'text': { 
      'value': 'sample text' 
    } 
  } 
} 
こんな形で書きます。

ドロップダウンやチェックボックスなど選択肢系のやつは、

valueの値をフィールドの選択肢にある値にしないとエラーになるのでご注意ください!


実装


コマンドライン (curlコマンド)で実行

コマンドラインからレコードを1件登録する場合は、以下のコマンドとなります。

# Windows(PowerShell)の場合 
curl.exe -X 'POST' "https://(サブドメイン名).cybozu.com/k/v1/record.json" ` 
-H 'X-Cybozu-API-Token: YOUR_TOKEN' ` 
-H 'Content-Type: application/json' ` 
-d '{"app":100,"record":{"text":{"value":"sample text"}}}' 
 
# Mac(ターミナル)の場合 
curl -X 'POST' 'https://(サブドメイン名).cybozu.com/k/v1/record.json' \ 
-H {'X-Cybozu-API-Token: YOUR_TOKEN' \ 
-H 'Content-Type: application/json' \ 
-d '{"app":100,"record":{"text":{"value":"sample text"}}}' 


JavaScript (Node.js) で実行

Node.jsでレコードを1件登録する場合は、以下のコードとなります。

※ RESTAPIのリクエストに requestモジュールを利用しています。

const request = require('request'); 
 
let obj = { 
  'app': 100, 
  'record': { 
    'text': { 
      'value': 'sample text' 
    } 
  } 
}; 
 
let params = { 
  url: 'https://(サブドメイン名).cybozu.com/k/v1/record.json', 
  method: 'POST', 
  json: true, 
  headers: { 
    'X-Cybozu-API-Token': 'YOUR_TOKEN', 
    'Content-Type': 'application/json', 
  }, 
  body: obj, 
}; 
 
request(params, function(err, resp, body) { 
  if (err) { 
    console.log(err); 
    return; 
  } 
  console.log(body); 
}); 
 


Python で実行

Pythonでレコードを1件登録する場合は、以下のコードとなります。

※ RESTAPIのリクエストに requestsモジュールを利用しています。

#!/usr/bin/python 
# _*_ coding: utf-8 _*_ 
 
import requests 
 
URL = "https://(サブドメイン名).cybozu.com/k/v1/record.json" 
APP_ID = 100 
API_TOKEN = "YOUR_TOKEN" 
 
def post_kintone(url, app_id, api_token): 
    """kintoneにレコードを1件登録する関数""" 
    data = {"app": app_id, "record": {"text": {"value": "sample text"}}} 
    headers = {"X-Cybozu-API-Token": api_token, "Content-Type" : "application/json"} 
    resp = requests.post(url, json=data, headers=headers) 
 
    return resp 
 
if __name__ == "__main__": 
    RESP = post_kintone(URL, APP_ID, API_TOKEN) 
 
    print(RESP.text) 
 


Go で実行

Goでレコードを1件登録する場合は、以下のコードとなります。

package main 
 
import ( 
  "fmt" 
  "net/http" 
  "io/ioutil" 
  "bytes" 
) 
 
func main() { 
  APPID := "100" 
  url := "https://(サブドメイン名).cybozu.com/k/v1/record.json" 
  jsonStr := `{"app":` + APPID + `, "record": {"text": {"value": "sample text"}}}` 
  req, _ := http.NewRequest( 
    "POST", 
    url, 
    bytes.NewBuffer([]byte(jsonStr)), 
  ) 
  req.Header.Set("X-Cybozu-API-Token", "YOUR_TOKEN") 
  req.Header.Set("Content-Type", "application/json") 
 
  client := new(http.Client) 
  resp, _ := client.Do(req) 
 
  defer resp.Body.Close() 
 
  response, _ := ioutil.ReadAll(resp.Body) 
  fmt.Println(string(response)) 
} 


レスポンス

レスポンスは非常にシンプルで

{"id":"2", "revision":"1"} 
と返ってきます。

idは登録したレコードID (今回だとレコードID:2として登録している)、

revisionは更新履歴のようなものです。


おわりに

kintone REST API のPOST処理を4種類の方法で試してみました。

前回の 共通事項編GET編と合わせて読むとより良いかもです!

とりあえず、4部構成が全て終わりました!

それでは!≧(+・` ཀ・´)≦

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)