EmacsでAPIをたたく。restclient.el
restclient.elというものがありまして、
テキストファイルにAPI呼び出しを列挙しておくと、C-c C-cなどで実行できます。
JSONかXMLならレスポンスをpretty-printしてくれます。
postリクエストの例。バッファにこんな風に書きます。(GitHubの例より)
POST https://jira.atlassian.com/rest/api/2/search
Content-Type: application/json
{
"jql": "project = HSP",
"startAt": 0,
"maxResults": 15,
"fields": [
"summary",
"status",
"assignee"
]
}
POST https://... の部分でC-c C-cすると別のウィンドウにレスポンスが表示されます。
Emacs24.4から搭載された json-pretty-print をレスポンスの表示に使っているのですが、手元では古いjson.elがload-pathの上位にいて、利用できなくて一瞬困りました。
古いjson.elを消して、Emacs.appに含まれる新しいjson.elをロードしたらうまく動きました。
ちなみに、localhostへのアクセスは、url.elのバグで落ちるので、127.0.0.1としてアクセスしないといけません。
HTTP GET http://localhost:8080/hogehoge Headers:[nil] Body:[] Contacting host: localhost:8080 error in process sentinel: if: peculiar error: "failed with code 22 ", :host, "localhost", :service, 8080
あと、マルチバイト文字列を送信するときは、JSONをリージョン選択し、M-x json-pretty-printして "\u307b\u3052" (数値参照?)みたいな形式にする必要があります。