溝畑です。
Markdownの記事を書いてから随分と時間がたってしまいました。
今回はwebapi-vimを使用し、APIを叩いてみようという内容です。
webapi-vimとは
Vimから、HTTPのPOSTやGETができる、非常に便利なプラグインです。webapi-vim
導入
プラグイン管理にNeoBundleを使用していることを前提とします。.vimrcに下記を追記します。
1 |
NeoBundle 'mattn/webapi-vim' |
あとは、:NeoBundleInstallのコマンドを叩くと導入完了です。
使い方
1 2 3 4 5 6 7 8 9 10 11 |
"getの場合 let res = webapi#http#get('URL') "postの場合 let res= webapi#http#post('URL') "jsonをデコードする let content = webapi#json#decode(res.content) "echoする echo content |
POSTやGETをするだけならば、このように書くと使うことが可能です。とても簡単。
その他、詳しい使い方はヘルプを参照してください。
チャットワークに投稿してみる
サンプルとして、Vimからチャットワークに投稿するコマンドを作成してみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
" command作成 command! -nargs=1 ChatWorkSay :call s:ChatWorkSay(<f-args>) " 関数 function! s:ChatWorkSay(message) let token = 'APIのトークン' let room_id = '投稿するroom_id' let url = 'https://api.chatwork.com/v1/rooms/'. room_id " messageをPOSTする let res = webapi#http#post(url. '/messages', {'body': a:message}, \ {'X-ChatWorkToken': token}) let dict = webapi#json#decode(res.content) " message_idをecho echo dict.message_id endfunction |
tokenとroom_idはご自身のものを入れてください。
:ChatWorkSay hogehogeとすることで、投稿することが可能になります。
エラー処理などを追加すると、使いやすくなりそうですが、サンプルですので今回はなしです。
動作イメージです。
最後に
Vim scriptを書いてみたいけど、ネタが思いつかない。そんな方にピッタリではないでしょうか。
APIを叩けるだけで、Vimを便利にする幅が広がります。
是非、試してみてください。
Vim 便利。