REST APIを「叩く」って何?ツール使ったら初心者でも簡単だった
はじめに
こんにちは。このブログを書こうとした時、最初に間違えてまっさらで公開してしまってめちゃくちゃ焦ったダン吉です。 PC操作もおぼつかない私ですが、今回はAPIを知らない方向けにkintoneのREST APIをもっと身近に感じていただけるようなツールを紹介したいと思います。
REST APIって何?
ってはじめておいて何ですが、kintone REST APIって何?
超・即物的に言うとcybozu developer networkの上のメニューのココらへんをマウスでピャーッとオンしてもらって...
ピャーっとしたら下にデロンと詳細メニューが出て...そうココ!
やった!そこに説明が書いてあります!見てみましょう。
REST APIの概要
kintoneアプリのレコードの操作やフォーム設計情報の取得、スペースを操作することができます。
お、おう...。
ま、わかる人にはわかりますよね!
でもここだけの話、私、実はよくわかっていません...。ふんわりこんな感じの理解です。
- ○ http://で始まるやつのことををURIっていうらしい
- ○ GETしたりPUTしたりするらしい
- ○ リクエストしてレスポンスがあるらしい
- ○ 「ジェイソン」(※チェーンソーじゃない奴)を使うのがトレンドらしい
そんなへなちょこの私に、ボスから「kintone REST APIを叩いてテストして」というミッションが与えられました。でもこれからご紹介する方法を使えば、こんな甘ふわな理解でも大丈夫です。
世界一ざっくりとしたAPIのたとえ
まず、何のためにAPIを叩いてテストするかを説明しなければいけません。
kintoneは、中の難しいプログラムを意識せずに外から使える「API」をたくさん提供しています。「API」は呪文の取り決めのようなものだと思うとイメージしやすいかもしれません。「ラ○ュタAPI」の中の「バ○ス」を唱えれば、全部崩れてっちゃう、みたいなもんです。
kintone REST API群はそんなAPIの中のひとつであり、外部からkintoneのデータを取ってきたり、入れたりするのに使うことができます。
でも、呪文の唱え方を間違えたり、違う呪文を使うと、プログラムやシステムがえらいことになります。そこで、新しく使う呪文は必ずテストして、結果や使い方を検証する必要があるのです。
ツールを使えば、驚くほど簡単にREST APIをテストできる
でも...、難しいんでしょ? と思ったあなた、大丈夫です。私が実際にAPIを「叩く」ことができた便利なツールを紹介しましょう。
まずはこれ。
1. developer network「公式」HTTP Client Tool for kintone
ブラウザで簡単にREST APIを試せるツールです。しかもkintoneのために特別に作られた!
まずはやってみましょう。レコードが1件以上登録されている適当なkintoneアプリが必要です。自分の開発環境でも社内環境でもOKです。本当はやたらに叩いてはいけないのですが、1日1万回までの制限なので、今回のテストだったらへっちゃらですね。
ツールにアクセスしてみて画面を見てみましょう(URLは後述)。アプリの1件のデータを取得するだけであれば、初期画面から以下の3ステップを踏めばOKです。
①サブドメイン書く:アプリをブラウザで開いてhttps://<サブドメイン>.cybozu.com/k/<アプリ番号>/ の、<サブドメイン>のところを書きます。②の画像のサブドメインと同じです。
②ヘッダに認証情報書く:誰でも呪文を唱えられると危険なので、認証情報が必要です。認証とは平たくいうと「何者だ!」「○○です」「よし通れ」または「ダメだ帰れ」です。
合言葉だったり鍵を持ってたり、パスするにはいろいろ方法があるのですが、今回はこちらの画面に相当するログイン名とパスワード情報をBASE64方式で変換した文字列を使います。
普通の文字列をBASE64方式に変換する機能はツールには組み込まれていないので、別のツールで変換後のものを使います。変換ツールは「BASE64エンコード」で検索すると色々と無料のものが出てきます。
ポイントとしては、「Request Headers」の欄で、「Key」項目に「X-Cybozu-Authorization」を選ぶことです。
右側の「Value」項目には例えば"(ログイン名):(パスワード)"が"Administrator:password"の場合、変換後の「QWRtaW5pc3RyYXRvcjpwYXNzd29yZA==」をコピペします。
③リクエスト送る:「Send」を押してリクエストを送ります。
では、実際に①②③のステップで叩いてみた図がこちら。
エラーが出て、何かが間違っているようです。
そこで頼りになるのはdeveloper networkのAPIドキュメント。ツール初期画面の呪文(API)のGET record.jsonは、kintone REST APIのトップバッター、「レコードの取得」です。下の画面のように探しに行って説明を読んでみます。
取得だからGET、そしてURIっていうWeb URLっぽいのが呪文本体のようなものです。
そして必須のリクエストパラメーターというのがあります。どうやらこれをつけなかったからエラーになったようです。
developer networkはAPIドキュメントですべての最新のkintone APIとリクエストパラメーターを網羅するのはもちろん、書き方の各種サンプルまで載せています!初心者にも優しいですね。
すぐ下にappとidの書き方サンプルも載っていました。
では呪文の末尾に追加しておきましょう。appはアプリ番号、idはレコード番号です。
ツールに戻って「Request URL」の末尾につけて、リクエストのお作法を直しました("?"をつけるのはそういうものと思ってください)。なので、③リクエスト送る の前に、リクエストパラメータを書く が必要でした。嘘ついてすみませんでしたm(_ _)m。
そして再度叩くと...。
やったーヽ(*´∇`)ノ 指定したレコード番号「1」のレコードの内容が返ってきました。
ちなみにこの返ってきた結果をレスポンスといい、{}付きで並んでいるのが「JSON(ジェイソン」形式です。
ふんわり理解ですが、何とかなりました(´ ▽`).。o
このツール、後で紹介するツールと違ってPUT(更新)やDELETE(削除)もできる優れものなのですが、1つ残念なお知らせがあります。developer networkのメンバー限定のアクセスなのです。この記事を読んでAPIに興味が湧いたあなたも、立派に今ここからdevelopersの一員です。ぜひお気軽に無料のメンバー登録をお願いします。
メンバー登録が済んだ方はこちらから、または「APIドキュメント・ツール」>「SDK/Tools」>「Developer Tools」>「デモ環境(メンバー限定)」からご利用ください。
2. Google Chrome拡張「DHC」
もう1つ、HTTPクライアントツールを紹介します。Google Chromeの拡張として提供されている「DHC」は、1度使ったリクエストに名前をつけて再利用できたり、プロジェクトごとにまとめられたりする機能が便利です。入手先はこちら。
インストール方法は割愛しますが、入れるとこんな感じに、ブラウザに起動ボタンがつきます。
このツールで、12月11日に公開されたばかりの、入荷したてのkintone REST APIを叩きます♪
プロセス管理の設定を取得できるAPIです。HTTP Client Tool for kintoneと同様に、リクエストを書いて、「Send」をクリック。
必須のリクエストパラメーターは、リンク先のAPIドキュメントを見て「app=(アプリ番号)&lang=ja」を追記しています。
結果がこちらです。複雑なプロセス管理の設定も一括ゲット。Wow!
これと他のAPIのミックス技で、プロセス管理の設定を丸ごと他のアプリにコピーするなんてこともできます。こちらの記事(「プロセス管理の設定を別アプリにコピーする」)に、サンプルプログラムを使って簡単に真似できる方法が書いてありますので、興味のある方は試してみてください。
APIを「叩く」とは?
ところで、APIを叩くって結局何? ここまで読んでいただいた方はお分かりですね。APIを叩くというのは、APIを実行することのスラングです。リクエストを叩いたら、レスポンスが返ってくるためと思われます。
一気に玄人っぽくなる魔法のフレーズとしては
「エラーを吐く」「バッチを回す」(別プログラムを)「キックする」
なんかが、私の周りのテクニカルの現場ではよくあります。実際に使ってモテるかどうかは保証はいたしませんm(_ _)m。
おわりに
kintone REST API、思ったより簡単そうだと思っていただけましたか? cybozu developer networkにはまだまだたくさんの使えるAPIがあります。APIドキュメントの世界を探索して、叩いて遊んでみてはいかがでしょうか。
技術者向けサイト
★メンバー登録特典★
- ・コミュニティに投稿やコメントしたり、Tips に質問できます。
- ・API のアップデート情報の通知を受け取ることができます。
- ・5ユーザー、1年間無償の開発者ライセンスを申し込むことができます。
- ・Tipsやサンプルの動きを確認できるデモサイトを利用することができます。
- ・ HTTP Client Tool for kintoneを利用することができます。