Invoke-RestMethodを使ってみる
curlの代わりにInvoke-RestMethod
SolrをやっているとRestApiを使う機会がかなりあります。 そんな時に必ず出てくるのが「curl」というコマンドです。 カールと読むらしいです。httpだけではなく、様々なプロトコルが 使えるようです。 参考URL: cURL - Wikipedia
でも私はWindowsユーザーです。 Cygwinを入れてもいんですけど、インストールが面倒です。 それならデフォルトに入っているPowershellを使おうと思い調べてみたところ 「Invoke-RestMethod 」なるコマンドを見つけました。
※ ちなみに名前の通り、Invoke-RestMethodで使えるプロトコルは、httpとhttpsです。
参考URL: Invoke-RestMethod
Invoke-RestMethod を使ってみる
簡単に使い方をまとめておきます。
- Invoke-WebRequestを利用してFormを取得してPOSTするのはこんな感じらしいです。(上のサイトより)
$r = Invoke-WebRequest http://website.com/login.aspx $r.Forms[0].Name = "MyName" $r.Forms[0].Password = "MyPassword" Invoke-RestMethod http://website.com/service.aspx -Body $r
- Jsonファイルを利用して、POSTします。
Invoke-RestMethod -Uri $api -InFile data\book_demo.json -ContentType 'application/json' -Method Post
-Uri ・・・ 呼び出す、APIのURLを指定します。
-InFile ・・・ bodyになるファイルを指定します。
-ContentType ・・・ ContentTypeを指定します。
(content-type一覧)
-Method ・・・ HTTPメソッドを指定します。
- RSSサービスを利用して、GETでデータを取得します。
Invoke-RestMethod -Uri http://news.yahoo.co.jp/pickup/computer/rss.xml -Method Get | Format-Table -Property title,link
簡単ですね。いろいろ、使い道がありそうです。