PostmanでシンプルなAPIリクエストを送信して、レスポンスを取得します。 上記のスクリーンショットで、ビューにたくさんの要素が配置されていていることが分かります。上部のバーにはリクエス … pm.environment.set('courseId', jsonData.data[0].uuid); http://blog.getpostman.com/2017/07/28/api-testing-tips-from-a-postman-professional/, https://medium.com/@codebyjeff/using-postman-environment-variables-auth-tokens-ea9c4fe9d3d7, How to Master Your API Workflow with Postman. トークンを使う方法は2つあります。1つ目はトークンをコピーして、トークン変数としてペーストする方法です(手間なので避けるべきです)。, 2つ目は、リクエスト終了後にコードを実行してトークンを設定する方法です。ここでTestsが役立ちます。, アプリケーション開発では、APIから適切な結果が返ってきたか確認することが大切です。Testsなら、レスポンスの内容が適切か、いろいろな方法で検証できます。基本的な手法を試します。, Testsタブへ移動し次のコードを入力して、ログインリクエストを送信してください。, responseCodeにはレスポンスステータスオブジェクトが含まれているので、レスポンスが200 OKか確認しています。ほかのオブジェクトを使えば、レスポンスボディー(responseBody)やレスポンスヘッダー(responseHeaders)、レスポンス時間(responseTime)も確認できます。テストスクリプトはここを読んでください。, testsオブジェクトには想定通り動作しているかを示すboolean値のリストが格納されていますが、任意のJSコードも追加できます。たとえば、レスポンスのトークンを取得して、環境変数に設定するコードを追加できます。, ステータスを確認し、レスポンスボディーをJSON形式でパースして、トークンを取得します。環境変数ビューを開くと、トークンが適切に設定されているか確認できます。, コンソールは、オブジェクトを操作したりレスポンスの中身を確認したりできます。cmd+alt+CかView > Show Postman Consoleコマンドでコンソールを開きます。, コンソールにはリクエストとレスポンスオブジェクトのログが詳細に表示され、問題発生時に原因を調べるのに役立ちます。, JSON構造の属性種別の確認をはじめ、レスポンス検証をいちから構築するのは手間です。, PostmanにはLodashやtv4 JSONスキーマ検証など、テストに使えるライブラリーが充実しています。全リストはこちらです。, ログインエンドポイントのテストと、少し複雑なテストを解説します。ログインエンドポイントはトークンを返すだけなので、レスポンス中にトークンの値が設定さているか確認します。, リソースが返ってきたことを確認すると、たちまち複雑なコードになります。複雑なテストの例です。, 上記のテストは、リソースキーが存在することとレスポンスステータスがOKであることを確認しています。これを何度もテストするのは大変です。, 上記のコードは、コースリソースのスキーマを作成して、JSONレスポンスをパースし、tv4で検証します。, このテストの問題点は、スキーマをテストごとにコピーペーストする必要があることです。そこでスキーマを環境変数に保存して、再利用可能にします。, メモ:スキーマを環境変数に保存することに違和感があるかもしれませんが、環境変数には値に限らずなんでも格納できます。, 解決したように思えますが、アプリケーションにはたくさんのエンドポイントがあります。開発が進むほど数が増えるので、適切な方法で管理します。, コレクションは、たとえるなら同種のものを集約しておくフォルダーです。コレクションの作成と管理方法はドキュメントに書かれており、この記事でも同じ方法を使います。, まずは左端のメニューからnew folderをクリックします。新しいリクエストを作成するときには、Saveボタンをクリックしてフォルダーを選択します。, フォルダー構造はシンプルなほうが良いのですが、統合テストとして分類するため、機能ごとにフォルダーを作成します。, このアプリケーションでは組織ごとにコースのリストがあり、ユーザーはコースに登録して、登録したコースをコースリストで確認できます。この機能のテストを作成して、テスト名を付けたフォルダーに保存します。どうすれば意図した順序でテストを実行できるのでしょうか?, Postmanには、リクエストとテストのチェーンを作成して統合テストを実行する便利な機能があります。この記事のテストチェーンを示します。, postman.setNextRequestメソッドでテストの順番を指定します。「Get auth token」テストのあとに「List organization courses」を実行します。チェーンを終了するには、nullを渡します。, pm.environment.set('courseId', jsonData.data[0].uuid);の行では、リストの先頭のコースを取得して、enroll requestで利用可能な環境変数を設定しています。, コレクションを実行するには、左端のバーの右矢印をクリックしてメニューを開き、Runを選択します。, コレクションではなくフォルダーでも実行できます。テストの実行中にエラーが発生すれば、コンソールを開いてログを確認します。テストのコレクションはドキュメントを読んでください。, 事前に用意したデータでコレクションを実行する機能もあります。詳しくはここを確認してください。, APIにはドキュメントが欠かせません。Postmanにはドキュメント作成を支援するツールがあります。, ドキュメントの作成は、コレクションを選択してview in webをクリックします。コレクションとリクエストのドキュメントが開き、リクエストの詳細(ボディー、パラメーター、ヘッダー、メソッドなど)を確認できます。ドキュメントの作成について詳しくはここに書かれています。, ドキュメントにはレスポンスも含められます。PostmanにはExampleをドキュメントに組み込む機能があります。, Exampleはレスポンスを切り取り、APIの一部として利用できます。リクエストを実行して得られるものを実際に実行せずに確認できます。, Postmanでリクエスト実行後に、Save responseボタンを押してヘッダーやパラメーターなどを定義します。, ドキュメントはAPIの使用者がアクセスでき、APIの使い方を確認します。Postmanにはドキュメントを共有する方法が数種類あります。プロアカウントなら、プライベートなドキュメントの共有やチームの構成ができます。ドキュメントのリンクを生成して共有する機能もあります。, モックは、アプリケーションのプロトタイプを作成してAPIの構造を検討するときに使用します。チーム開発の場合は、モックに合意したら、各自の作業(バックエンド、フロントエンド、モバイルなど)をして、パーツを作り、環境を新しいサーバーに変更します。, モックサーバーのリンクを生成して、認証用にPostman APIキーを取得します。2つ目のスクリーンショットにはAPIキー取得の警告が表示されています。Get your Postman API keyリンクをクリックして、新しいキーを生成します。, モックURLとAPIキーがあれば、
ホーム. All rights reserved. レスポンスの文字コード周りは普通はライブラリがうまく処理してくれるはずですが、まさかと思ってレスポンスの中身を見てみると… HTTP/1.1 200 OK Date: Sat, 18 Oct 2014 00:00:00 GMT cache-control: no-catch Connection: close Content-Type: text/plain Set-Cookie: xxxxxxx=xxxxxxxxxxxxxxxxxxx; Path=/ (Shift_JISな本文) 開発ツールはエクセルソフト - エクセルソフト取扱製品の関連情報をお届け. これは、Curlというか、コンソール(コマンドプロンプト等)の問題なんですけど、 レスポンス内容が日本語で文字化けしている事が多々あります。そういう場合は、以下の手順で対応できます。 クラウド/API サービス. 自分メモもかねて、javaのHttpClientでapiにjsonをpostした話を書きます。 文字化けにも見舞われたので、その回避の話も書いておきます(回避というほどじゃないけど) クラウド/API サービス, 先日、API ManagementツールのKONGを触ってみた | エクセルソフト ブログというエントリーを書きましたが、curl や Httpie を使用することで API を叩いていました。, REST を叩くなら Postman がおすすめだよ。と教えてもらいましたので、触ってみました。, The Collaboration Platform for API Development, とあるように、API 開発をする際にアクセス、モック作成、テストなどを個人やプロジェクトで使うことができる API クライアント/サーバーです。(全部入りと思って大丈夫w), このエントリーでは Postman の API クライアントとしての様々な機能を紹介します。, Postman のサイトにアクセスして、「Download the App」からインストーラーをダウンロードします。, インストールして起動すると、ユーザー登録が促されますので、そのまま登録します。(登録すると後述する Collection を Postman 側に保存して別マシンと同期することができるので登録することをお勧めします。), 最初の画面です。多機能だとは思うのですが、とりあえずは枠に URL を入力して「Send」ボタンをクリックすれば URL に対して HTTP リクエストを投げることができます。, 例えば curl では以下のように書く POST リクエストを Postman でやってみましょう。, 送信方式を POST にし、右側の欄に URL を入力し、data として渡していた「name=test」などをそのまま body の key と value として入力していきます。, ステータスコードも右側に出て、リターンの Body が表示されています。Header もチェックできますね。ちなみに、上記のスクリーンショットは Ubuntu でのものです。, 次は curl では次のように書く GET リクエストを Postman で送ってみましょう。, 送信方式を GET にして、Param の欄に Key と Value を入力すると、自動的にパラメーターを追加してくれます。, 戻り値の JSON の Body は Pretty で見やすく表示されていますが、以下のように生データとしてコピーすることもできます。, POST で form-data を送る場合は、POST を選択し、Body で form-data を選んで key と value を入力して Send します。, JSON データを送る場合は、Body で raw を選択し、右側のドロップダウンから JSON (application/json) を選択して、JSON を直接入力します。(自動で Header に Content-type: application/json が指定されます。)結果は以下のようになります。, Collection は API へのアクセスをまとめておくためのフォルダと考えて良いでしょう。API へのアクセスを設定したタブで、「Ctrl+S」または「⌘+S」すると保存画面が出てくるので、任意の名前をつけて、「+ Create Collection」からコレクションを作成/指定して保存できます。, 保存すると、以下のように左のペインにコレクション名と名前をつけたタブが保存されます。, Postman は変数を使うことができます。変数には Global/Collection/Environment 変数があり、Global は Postman 全体で利用できる変数。Collection は Collection レベルで参照できる変数。Environment は各 Environment(タブ)で利用できる変数です。, 変数についての詳細は Variables | Postman Learning Center をご覧ください。, Global 変数は Postman 自体に格納する変数で、タブを超えて読み書きできるため、例えば「ログインした際の SessionID や UserID を格納して、その後のタブで {{PRJ-A_SESSION_ID}} や {{PRJ-A_USER_ID}} として参照する。」などの用途で使うと良いでしょう。(格納するには、後述する Script を使用します。), 右上の歯車アイコン⚙で Management Environment ウィンドウを開き、「Global」ボタンをクリックすると確認ができます。, Collection 変数は、Collection 内で使い回す変数を格納すると良いでしょう。, Collection の右側にある「… > Edit > Variables」で作成/利用できます。, 例えば、TEST_USER と TEST_PASSWORD を Collection に設定すると、それぞれ {{TEST_USER}}、{{TEST_PASSWORD}} として参照ができます。, Environment 変数は、例えば開発環境と実行環境で参照する IP Address を変えたい場合などに利用します。, 右上の歯車アイコン⚙で任意の名前をつけて保存します。例えば「PrjA-Development」環境では、Hostname をローカルホストに指定し、「PrjA-Production」環境では、実際の IP Address に指定するなどです。, 右上の Environment 欄で Environment を指定できます。「PrjA-Development」を選択すると、{{Hostname}} が「PrjA-Development」で設定した IP Address になります。, 送信前、送信後に値を設定、取得したい場合もあると思います。送信前に値をセットする場合は Pre-request Script、送信後に取得した値から任意の値を選んで変数に格納する場合は Tests を使います。, Pre-request Script では、例えば送信時の現在時刻を Reqest Body に追加したい場合などに便利です。, Pre-request Script タブにこのスクリプトを記載すると、現在時刻をグローバル変数 NOW_DATETIME に yyyy-MM-dd hh:mm:ss.fff のフォーマットで格納してくれます。, 後はリクエストの Body や JSON で {{NOW_DATETIME}} で参照できます。むっちゃ便利ですね。, Tests 機能は公式ドキュメント Test scripts | Postman Learning Center にあるように、本来は戻り値をテストする。などのためにあるのだと思います。, 上記のように記載すると、レスポンスコードが 200 の場合にテストが通ります。以下のように Test Results のタブで結果を確認できます。, が、例えば「Response の Body に含まれる Token を Global 変数に格納して、それ以降のアクセスで使用する。」などの用途にも使用できます。こちらもむちゃくちゃ便利です。, JSON.parse(responseBody) で Response Body の JSON をパースして、pm.globals.set でグローバル変数 “PRJ-A_TOKEN” に json.token を格納しています。, 後はこれ以降のアクセスで Bearer {{PRJ-A_TOKEN}} のように書けば Bearer XXXX のように Token でのアクセスができます。, Environment の操作方法は公式ドキュメントの Postman Sandbox | Postman Learning Center もご参照ください。, 単純にアクセスするだけでなく、変数やスクリプトを使うことでめちゃめちゃ便利に使える Postman をぜひ活用していきましょう!, 著者の @ytabuchi が所属する エクセルソフト は、開発者向けのツール、ライブラリ、クラウドサービスなどを多く提供しています。是非弊社サイトも覗いていってください。, API あるけど認証やロギングなどの機能を追加するの大変そう。という方は、OSS 版も用意されている API Management ツールの Kong を試してみてください。, Kong については簡単なハンズオンも ytabuchi の GitHub に用意しました。, API のテストがしたいなって方は SmartBear SoapUI Pro : Web API 機能テスト ツール :エクセルソフト をお試しください。, API まだないからなーという方は MS SQL、MySQL、PostgreSQL などから簡単に API を作成することができる CData API Server を試してみてください。.
Crown 1年 和訳 6, 膝 早く 治す 6, 宇都宮市 旭中学校 事件 18, ポケ森 コテージ メリット 5, バスケ スリーメン 応用 5, ワイヤー シンブル 使い方 15, ガッツだぜ 歌詞 下ネタ 24, Windows Unzip コマンド オプション 5, ディスコ 相手の声が小さい スマホ 4, Dap アート ワーク 9, Jcom 違約金 払わない 6, スキャン 画像 ノイズ除去 7, ギャランドゥ 処理 高校生 12, 住宅ローン 連帯保証人 審査 4, Sharp El 9000 取扱説明書 7, アドレスv125 走行距離 限界 6, 福岡 すず インスタ 9, 猫 体重 痩せすぎ 5, 鳥 卵 何個産む 8, ネイビー革靴 コーデ メンズ 7, 韓国 フッ化水素 不良品 19, 生理周期 短い 漢方 24, 約束 遅れる 連絡 4, 2000年代 ロック 特徴 26, ハンマードリル レンタル 札幌 5, エルグランドe52 ヘッドライト 外し方 20, 改ページプレビュー A4 サイズ 7, 米 コイン 両替 13, Fr E700 E800 違い 4, あつ森 住人 プレゼント 29, 欧州サッカー ユニフォーム 2021 5, エルグランド E52 リア モニター 外し 方 5, インスタ フォロー解除 凍結 4, マイクラ 特集サーバー 入れない 5, ミニチュア マイク 作り方 6, Z1000 スライダー 取り付け 方法 5, Wavy 韓国 ブランド 4, ボルボ S60 ゴルフバッグ 4, Dpd チェック エンジン 6, 大相撲 一門 相関 図 28, かくしごと 2 動画 5, コナン 灰原 誘拐事件 7, マリーゴールド あい みょん Mp3 25, 伸ばしかけ ボブ はねる 8, 高 所 作業車 各部 名称 15, Sas Sata 転送速度 6, Ps4 アバター サブ垢 7, Akt アプリ と は 7, 彼氏 不安 将来 6, 学者 ミラプリ 男 6, コイル 巻き数 抵抗 5, 川越 芋 インスタ 8, 第五人格 課金 変更 11, 一戸建て タバコ 苦情 10, プロスピa Ts 2020 予想 5, ドラクエ10 釣り キングサイズ確率 6, マイクラ ビーコン 伐採 4, 建設会社 社長 年収 16, ハーレー タイヤ シンコー 11, Xperia Xz2 タッチ感度 9, 卓球 強い高校 女子 6,