Translation copyright © 2017, KADOKAWA ASCII Research Laboratories, Inc. Japanese syndication rights arranged with SitePoint Pty Ltd, Collingwood, Victoria,Australia through Tuttle-Mori Agency, Inc., Tokyo, APIを構築した経験があれば、難しさが分かるでしょう。プロジェクトは収拾がつかないほど複雑になり、ドキュメントを作成してみても、結局すっきりしません。, 以前簡単に紹介したツールPostmanを試しました。Postmanなら、認証、テスト、ドキュメント作成、バージョン管理などAPIの多くの要素を統合して開発できる環境で、API構築の強力な助けになると分かりました。, 上記のスクリーンショットで、ビューにたくさんの要素が配置されていていることが分かります。上部のバーにはリクエストメソッド(この場合は GET)、その横にはリクエストのエンドポイントを入力します。リクエストに引数がある場合は、Paramsボタンをクリックして開いたテーブルに入力します。準備ができたら、Sendボタンをクリックしてリクエストを開始します。, 下のボタンのセクションには、レスポンスの情報(status、time、size)が表示されます。Tests以外の3つのタブは名前から意味が分かるので、説明は省略します。Testsのタブには、Testsの結果が表示されます(詳しくはあとで説明します)。, Postmanは多くの認証方式をサポートしています。この記事では、ヘッダーで設定するトークン認証を使います。認証について詳しくはこちらを参照してください。, 今後のリクエストで使うトークンを取得します。ここでは私が開発中のアプリケーションでテストしますが、ほかのアプリケーションでも可能です。テスト用のアプリケーションをLaravelで立ち上げてテストする方法もあります。, トークンを得られたので、認証済みユーザーとしてAPIからデータを取得できます。ただし、リクエストのたびにトークンをコピーペーストするのは手間です。, Postmanには、環境変数を1カ所に集約してコピーペーストを不要にする機能があります。環境とはローカルやテスト、ステージングなどの条件のことです。以下の変数のスコープを定めます。, グローバル変数は指定した環境とは無関係でどこからでも利用できます。詳しくはドキュメントを参照してください。, ログインエンドポイントを更新して、新しい環境を利用可能にします。まずは右上部のボックスで環境を選択します。, URLやパラメーター、Testsに含まれている変数を使えます。 用語「httpレスポンスボディ」の説明です。正確ではないけど何となく分かる、it用語の意味を「ざっくりと」理解するためのit用語辞典です。専門外の方でも理解しやすいように、初心者が分かりやすい表現を使うように心がけています。 今回は、リアルタイムの大気質データがマウントサイナイ病院の喘息に関する大規模な研究に不可欠な要素となった理由をご紹介します。 環境デー... 日本人の 2人に 1人は花粉症であると言われています。さらに、世界のアレルギー治療薬市場は、2025年までに年間 400億ドルを超えると... タタ・グループの 3つの事業は、大気質データの専門家である BreezoMeter とパートナーシップを結び、ドライバーが訪れる場所につ... Kong は、フル ライフサイクル API 管理市場分野のガートナー マジック クアドラント (Gartner Magic Quadra... *本イベントは終了いたしました。 [Mod] - 10514016 これは、Curlというか、コンソール(コマンドプロンプト等)の問題なんですけど、 レスポンス内容が日本語で文字化けしている事が多々あります。そういう場合は、以下の手順で対応できます。 開発ツールはエクセルソフト - エクセルソフト取扱製品の関連情報をお届け. レスポンスの文字コード周りは普通はライブラリがうまく処理してくれるはずですが、まさかと思ってレスポンスの中身を見てみると… 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な本文) All rights reserved. PostmanでシンプルなAPIリクエストを送信して、レスポンスを取得します。 上記のスクリーンショットで、ビューにたくさんの要素が配置されていていることが分かります。上部のバーにはリクエス … AcrobatでHELP!サポートセンターにみんなが駆け込むトラブル事例とその解決方法, Acrobat DC のダウンロード | エンタープライズタームまたは VIP ライセンス版. 日本語の文字化け対策。curlコマンドで日本語に対応する手順. クラウド/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 を試してみてください。. Postmanの多彩な機能と統合環境で、APIを簡潔に開発する方法を紹介します。 リクエストする. クラウド/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. モロッコ出身、フリーランスのWeb開発者、技術系ライター・ブロガーとして活躍しています。JAVA、J2EE、JavaScriptを使った開発経験があり、専門はPHP言語です。詳しくはWebサイトをチェックしてください。, いまどきのWebアプリケーションの開発で重要となっているのが、APIの設計と開発。APIを開発するときの面倒な課題を一気に解決するすばらしいツール「Postman」の使い方を紹介します。. Copyright © 2017, Younes Rafie All Rights Reserved. トークンを使う方法は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キーがあれば、などでAPIエンドポイントを呼び出せます。, Postmanのモックは重要なトピックです。詳しくはモックサーバーを立ち上げるやモック例を読んでください。, チームメンバーやAPI利用者とドキュメントを共有する方法を説明しましたが、API開発には環境の共有や進捗の集約も必要です。Postmanには、エクスポート・インポートできる機能が備わっています。, Postmanアカウントを持っていればチームメンバーと簡単に共有できます。ツールのテスト中にはエクスポート・インポート機能が役立ちます。, コレクションをエクスポートするには、左端のバーのコレクションリストからコレクションメニューを開いてExportをクリックします。するとエクスポート形式を選択するポップアップが開きます。おすすめはv2形式です。, コレクションをインポートするには、トップメニューのImportをクリックして、インポートするJSONファイルを選択します。, コレクションと同じく、環境もManage Environmentsメニューから簡単にエクスポート・インポートできます。, コレクションの実行をはじめ、共有に関する機能はほかにもたくさんあります。ドキュメントを確認ください。, Postmanを使ってAPI開発を進める方法を説明しました。いくつかの機能を紹介しましたが、ほかにもできることはたくさんあります。ドキュメントに目を通して、API開発にPostmanを活用してください。, (原文:How to Master Your API Workflow with Postman). きたる 10 月 29 日 (木) に、マルチクラウド、ハイブリッド環境のための次世代サービス コネ... /n software Cloud Storage Integrator の使用方法: Dropbox, Enterprise IT seminar by professionals from global IT companiesを開催します, このサイトでは、サイトや広告を改善するために Cookie を使用します。サイトを利用することで、Cookie の使用に同意するものといたします。詳細はプライバシーについてをご覧ください。, API ManagementツールのKONGを触ってみた | エクセルソフト ブログ, Postman Sandbox | Postman Learning Center, SmartBear SoapUI Pro : Web API 機能テスト ツール :エクセルソフト, タタ・モーターズと TMETC が BreezoMeter と提携し、車内汚染管理の未来を強化するミッションを実施, Kong がフル ライフサイクル API 管理市場分野の 2020 ガートナー マジック クアドラントでリーダーの評価を獲得, Kong LAByrinth: バーチャル イベント開催のお知らせ (本イベントは終了いたしました), 新バージョン MadCap Flare 2020 r2 の新機能 – パート 2 マイクロコンテンツ オーサリングの拡張、スタイル付き変数, 新バージョン MadCap Flare 2020 r2 の新機能 – パート 1: 定義リストの追加、リスト機能の強化など.