この記事の目的
Windowsで特別なツールを使わずに気軽にWeb APIの呼び出しテストを行うために、Windows PowerShellを使った方法をご紹介します。
本記事で使用したWindows PowerShellのバージョンは5.1です。
[広告]関連書籍
リンク
リンク
テストで呼び出すWeb API
下記のWeb APIを使わせて頂きます。人物情報の参照/追加/変更/削除が可能です。
すぐ呼び出し可能なWebAPIのサンプル
実際に呼び出せるREST WebAPIのサンプルです。WebAPI呼び出しの練習やお試しにご利用ください。
利用される場合は、利用条件をよく読んでご利用ください。例えば、このWeb APIを非常に多くの回数呼び出すことは禁止されています。
サンプルプログラム
人物情報の参照
「織田信長」の人物情報を参照するためのWeb APIは、下記プログラムで呼び出すことができます。
- Invoke-WebRequestメソッドでWeb APIを呼び出します。
- レスポンスの内容が$res.Contentに入っているため、ConvertFrom-JsonとConvertTo-Jsonを使って見やすく整形します。
# Web APIを呼び出す $base_url = "https://umayadia-apisample.azurewebsites.net/api/persons/" $name = "織田信長" $url = $base_url + $name $res = Invoke-WebRequest -Method GET -Uri $url # JSON文字列を整形 ConvertFrom-Json $res.Content | ConvertTo-Json
呼び出し結果は下記のとおりです。「織田信長」の人物情報を参照することができました。
{ "success": true, "data": { "name": "織田信長", "note": "本能寺の変", "age": 12, "registerDate": "1534-07-03T04:14:25" } }
Invoke-WebRequest (Microsoft.PowerShell.Utility) - PowerShell
The Invoke-WebRequest cmdlet sends HTTP, HTTPS, FTP, and FILE requests to a web page or web service. It parses the respo...
人物情報の追加
「Aさん」の人物情報を追加するためのWeb APIは、下記プログラムで呼び出すことができます。
- Invoke-WebRequestメソッドでWeb APIを呼び出します。
その際に下記の指定を行います。
- Method : API仕様にPOSTとあるので、POSTを指定します。
- Body : 追加したい人物情報をJSON形式で指定します。
- ContentType : JSON形式のBodyを持つため、”application/json’を指定します。
$url = "https://umayadia-apisample.azurewebsites.net/api/persons/" $body = [System.Text.Encoding]::UTF8.GetBytes( '{"name":"Aさん","note":"test","age":10,"registerDate":"2022-06-12T00:00:00"}' ) Invoke-WebRequest -Method POST -Uri $url -Body $body -ContentType 'application/json'
呼び出し結果は下記のとおりです。ステータスコードが200になっており、人物情報の追加に成功していることが分かります。
StatusCode : 200 StatusDescription : OK Content : {"success":true,"data":null}
参考URL
本記事作成にあたり、下記URLを参考にさせて頂きました。
PowerShellでJSONを手軽に整形 - メモの日々(2022-04-01)
日記です
また、今回のWeb APIでは不要でしたが、レスポンスの日本語が文字化けするときには下記URLが参考になります。
Invoke-WebRequestの文字化け - Qiita
日本語のwebページをInvoke-WebRequestしたときに文字化けしていた場合の対処方法Invoke-RestMethodの文字化け対策 - or1ko's diarygooラボ 形態素…
コメント