PowerShellはWindows環境での自動化に非常に強力ですが、近年では外部システムと連携するために REST API を呼び出すケースが増えています。
本記事では、PowerShellでREST APIを扱う基本から、GET / POST の使い分け、ヘッダー指定、JSON処理までを 丁寧に・わかりやすく まとめました。
1. REST APIをPowerShellから呼び出す方法
PowerShellでAPIを叩く場合、最もよく使われるコマンドは次の2つです。
-
Invoke-RestMethod(API向け・JSONを自動で扱える)
-
Invoke-WebRequest(より低レベル。HTMLのスクレイピングなどにも強い)
REST APIの呼び出しには基本的に Invoke-RestMethod が適しています。
2. Invoke-RestMethod と Invoke-WebRequest の違い
| 項目 | Invoke-RestMethod | Invoke-WebRequest |
|---|---|---|
| 主用途 | REST API | Webページの取得 |
| 返り値 | JSON → 自動でPowerShellオブジェクトへ変換 | HTML文字列・ヘッダー情報 |
| 扱いやすさ | ◎ | △ |
| 実務での利用率 | 高い | 中程度 |
APIからJSONを受け取る場合は、特別な理由がない限り Invoke-RestMethod を選ぶとよいです。
3. GETリクエストの基本(サンプルコード)
APIから情報を取得したい場合は、まず GET を利用します。
■ クエリパラメータを付与する
GETの場合、ボディは送信せず、必要な情報はURLに含めます。
4. POSTリクエストの基本(JSONボディ送信)
POSTでは、サーバへデータを送信します。
■ ContentType は”application/json” が基本
API側がJSON受け取り前提の場合、ほぼ必須になります。
5. JSONデータの送受信
PowerShellは JSON の扱いが非常に簡単です。
JSON → オブジェクト(受信)
Invoke-RestMethod は自動で変換します。
オブジェクト → JSON(送信)
POSTやPUTの時は以下が必須です。
大きいJSONの場合は「深さ」を増やすオプションも利用します。
6. 認証が必要なAPIの呼び出し
多くのAPIは認証が必要です。
■ Bearer Token(OAuth2系)
最もよく使われるタイプです。
■ Basic 認証(ID/パスワード方式)
7. 実務でよくあるトラブルと対処例
■ 1. SSLエラーになる
社内プロキシ・証明書検証が原因。
(※一時的な回避策なので注意が必要です)
■ 2. 400 / 401 / 403 エラー
-
トークン期限切れ
-
Header不足
-
ContentType違い
などが原因のことが多いです。
■ 3. JSONの階層が深くて変換できない
→ ConvertTo-Json -Depth 20 を付ける
■ 4. Proxy環境で動かない
Invoke-RestMethod にプロキシを明示できます。
8. まとめ
PowerShellはREST APIと非常に相性が良く、Invoke-RestMethod を中心に活用することで、外部システムとのデータ連携や業務自動化をスムーズに実現できます。
▼本記事のポイント
-
API呼び出しには Invoke-RestMethod が最適
-
GET はURLにパラメータ、POST はJSONボディ
-
ConvertTo-Json でJSON生成
-
認証(Bearer Token / Basic)もPowerShellで簡単
-
実務でよくあるエラーも把握しておくと安心


