実現したいこと
powershellでAPI連携の実装を行いたい。
実装に際して、Invoke-RestMethodでリクエストした内容(電文)を取得したい。
ググってもわからなかったため、もし有識者いらっしゃれば。必要な情報等あればコメントください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
下記は、単純なGETリクエストからデータを取得し、そのデータから特定のキーに対応する値を出力する例になります。
例:
https://jsonplaceholder.typicode.com/comments?postId=1
というエンドポイントにGETリクエストを送ると、下記のようなレスポンスが返ってきます。
json
1[ 2 { 3 "postId": 1, 4 "id": 1, 5 "name": "id labore ex et quam laborum", 6 "email": "Eliseo@gardner.biz", 7 "body": "laudantium enim quasi est quidem magnam voluptate ipsam eos\ntempora quo necessitatibus\ndolor quam autem quasi\nreiciendis et nam sapiente accusantium" 8 }, 9 { 10 "postId": 1, 11 "id": 2, 12 "name": "quo vero reiciendis velit similique earum", 13 "email": "Jayne_Kuhic@sydney.com", 14 "body": "est natus enim nihil est dolore omnis voluptatem numquam\net omnis occaecati quod ullam at\nvoluptatem error expedita pariatur\nnihil sint nostrum voluptatem reiciendis et" 15 }, 16]
このレスポンスは配列になっています。
ここでは、要件として、最初(=0 番目)の要素の「email」に対応する値:「Eliseo@gardner.biz」を表示したいとします。
これをPowershellで行うには、下記のようにします。
(下記を3行まとめてコピーし、powershellに貼り付け→エンターキーを押してみて下さい)
ps
1$Response = Invoke-RestMethod -Method Get -Uri "https://jsonplaceholder.typicode.com/comments?postId=1" 2$x = $Response[0]."email" 3Echo $x
すると Powershellで最後に指定したメールアドレス「Eliseo@gardner.biz」が出力されます。(下記4行目)
全体の表示は下記のようになっているはずです。
powershell
1PS C:\Users\ユーザ名> $Response = Invoke-RestMethod -Method Get -Uri "https://jsonplaceholder.typicode.com/comments?postId=1" 2>> $x = $Response[0]."email" 3>> Echo $x 4Eliseo@gardner.biz 5PS C:\Users\ユーザ名>
上記でいくつかポイントがあることがお分かりになるでしょうか。
まず、レスポンスは、オブジェクトとして受け取ることができます。(文字列で受け取られてJSONにパースする必要はないということです)
そして、オブジェクトとして受け取ったレスポンスへのアクセス方法は、
$Response[0]."email"
のような形式になる、ということです。
投稿2023/12/22 15:59
編集2023/12/22 23:23退会済みユーザー
総合スコア0
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。