CData Software Blog

クラウド連携のCData Software の技術ブログです。

私が普段使っている Web API 連携開発で役立つツール・サービス一覧

f:id:sugimomoto:20201208180020p:plain

こんにちは。CData Software Japanリードエンジニアの杉本です。

今年は今まで以上に iPaaSやローコード・ノーコードサービスが盛り上がった一年でしたね!

それに伴い、SaaS・PaaSなどの各種APIを使って連携を実現するシチュエーションも増えてきました。

そんなAPI連携を作り込む際、うまくAPIリクエストが組み立てられなかったり・検証できなかったり、連携アプリから適切にAPIリクエストができているかわからない、となると原因の切り分けポイントが多くて困りますよね。

というわけで今回はAPI連携コンポーネントベンダーのエンジニアである私が普段活用している「APIの検証を便利にするツールやサービス」を紹介したいと思います!

(ちなみに、API連携開発用なので、APIを開発する時とは別な観点です。ご注意を。)

Postman

Postman はAPIの検証にもAPI開発にも必須なツールです。

www.postman.com

f:id:sugimomoto:20201208175238p:plain

認証・クエリパラメータ・Headerの設定などをUIでわかりやすく実施できるのはもちろん、Postman Collectionという形で各リクエストをまとめて管理したり、チームでシェアすることも可能です。

f:id:sugimomoto:20201208175247p:plain

また、作成したリクエストから、各プログラミング言語のリクエストサンプルを生成できます。2020/12/08日時点で、27種類提供されていました。

f:id:sugimomoto:20201208175254p:plain

作成したPostman CollectionはPowerAppsやPowerAutomateのようなノーコードツールに取り込んで、利用することも可能です。

kageura.hatenadiary.jp

Postman Echo

Postmanの影に隠れている感じですが、Postman EchoというAPIリクエストを検証するためのサービスも存在します。

docs.postman-echo.com

f:id:sugimomoto:20201208175300p:plain

例えば、以下のようなリクエストを渡すと

curl --location --request GET 'https://postman-echo.com/get?foo1=bar1&foo2=bar2'

下記のようなレスポンスを得ることができるようになっています。開発したAPI連携が適切にリクエストを渡せているか確認するために利用することができますね。

{
  "args": {
    "foo1": "bar1",
    "foo2": "bar2"
  },
  "headers": {
    "x-forwarded-proto": "https",
    "host": "postman-echo.com",
    "accept": "*/*",
    "accept-encoding": "gzip, deflate",
    "cache-control": "no-cache",
    "postman-token": "5c27cd7d-6b16-4e5a-a0ef-191c9a3a275f",
    "user-agent": "PostmanRuntime/7.6.1",
    "x-forwarded-port": "443"
  },
  "url": "https://postman-echo.com/get?foo1=bar1&foo2=bar2"
}

Postman API Network

Postman のリクエストは自分で作り込むだけでなく、API Networkというサイトで公開されているものを利用することもできます。

www.postman.com

f:id:sugimomoto:20201208175309p:plain

対象のAPIを選択して、「Run in Postman」をクリックすれば、そのまま使用しているPostmanにAPIリクエストを取り込むことができます。

f:id:sugimomoto:20201208175318p:plain

ちなみにPostmanはAPI ReferenceがOpenAPIなどで公開されていれば、そこからリクエストを生成することも可能です。

f:id:sugimomoto:20201208175326p:plain

会計freeeなどのAPIドキュメントがOpenAPIで公開されていたりするので、知っていると一気にAPI検証が楽になります。

developer.freee.co.jp

f:id:sugimomoto:20201208175333p:plain

Fiddler

作成したアプリケーションがどのようなHTTP・Web APIのリクエストを行っているのか、トラッキングするのであれば、Fiddlerが便利です。

特にスマホアプリやローカルデバッグで真価を発揮するのが、Fiddlerではないでしょうか。

www.telerik.com

f:id:sugimomoto:20201208175344p:plain

私の会社、CData Software Japanでもバリバリ使っているツールで、プロキシとしてFiddlerのポート番号を指定すれば、APIリクエスト・レスポンスがわかりやすく表示できます。

www.cdatablog.jp

f:id:sugimomoto:20201208175352p:plain

特にツール・アプリケーションと連携したあとに問題が発生した際、アプリケーション側の問題なのか、API側の問題なのかを見極めることは重要です。

また、ブレイクポイントのように、実行されたAPIリクエストをFiddlerでトラックし、内容を書き換える、といったことも可能です。

docs.telerik.com

これで一回APIリクエストを書き換えて、正常に疎通できるか確認する、といったことをよくやります。

(正直なところ、Fiddlerは常に使用するので、私の環境ではスタートアップで起動する状態です)

SwaggerHub

どちらかと言えば、連携というよりはAPI開発・OpenAPI Editor のイメージが強いSwaggerHubですが、Open API(Swagger)の定義を取り込んでClient用SDKを生成することにも利用できます。

swagger.io

f:id:sugimomoto:20201208175401p:plain

例えば電子契約サービス Cloud SignAPIはSwaggerHubで公開されており、「Export」ボタンから、各種言語用のSDKを生成、取得できます。もちろん、自身でほかから取得したOpenAPIを設定して、SDKを生成することも可能です。

app.swaggerhub.com

f:id:sugimomoto:20201208175410p:plain

慣れている人は、Open API Generatorを使うのもありですね。

github.com

Webhook.site

WebhookやiPaaSなどの場合、連携したアプリに適切にAPIリクエストが行われているか、どのようなレスポンスを受け取るのか確認しづらい場合がありますよね。

その場合に、この「Webhook.site」を使うのがおすすめです。

webhook.site

生成されたURLに対してAPIリクエストを行うと、リクエストされた内容をいかのように簡単に確認することができます。

f:id:sugimomoto:20201208175417p:plain

ちなみにリクエストはPOSTだけでなく、GETでもPUTでもDELETEでもかまいません。

Sendgridさんなども愛用しているみたいです。Event Webhookを検証する時は必須ですね。

sendgrid.kke.co.jp

mockable.io

とりあえず、認証はいいから、JSONだけ返してくれるAPIにしてほしい。みたいなことってないですか?

そんな時はMock APIを簡単に構成してくれるサービスが便利です。

https://www.mockable.io/

f:id:sugimomoto:20201208175424p:plain

以下のような感じでAPI定義を作っておけば、簡単にAPIリクエストとレスポンスを検証できます。

f:id:sugimomoto:20201208175434p:plain

API仕様書しか無いけど、とりあえず連携検証を行いたい時とかに使えます。

URLエンコード・デコードフォーム

APIリクエスト・クエリパラメータを作り込む時、URLエンコードとかを調整するのが面倒ですよね。あとエラーメッセージがURLエンコードされた文字列だったりするとツライです。

そんな時にはURLエンコード・デコードフォームが使えます。

www.tagindex.com

f:id:sugimomoto:20201208175441p:plain

オンラインBase64のエンコーダ

URLエンコードと同じ用に、Base64もよく出ますね。

これもオンライン上のエンコーダ・デコードがあります。

www.convertstring.com

f:id:sugimomoto:20201208175449p:plain

ちなみに個人的に地味に利用するのが、画像やファイルのエンコードです。ファイルアップロード検証を行うために、Base64文字列を作って試す、みたいなことがあるのですが、そんな時に画像ファイルからBase64エンコードしてくれるサービスがあるので、便利です。

lab.syncer.jp

f:id:sugimomoto:20201208175455p:plain

おわりに

以上です!

もし皆さんのおすすめのツールがあれば、是非教えて下さい!

また、ここまで色んなサービスを紹介してきましたが、オンラインサービスに機密情報などは渡さないように注意しましょう。