Node.jsでAmazon API Gatewayのクライアント書いた

https://github.com/r7kamura/amazon-api-gateway-client

Amazon API GatewayのREST API (紛らわしい) を操作するためのクライアントライブラリを書いた。書いたというよりか書き始めたぐらいの感じで、まだ一部のエンドポイントにしか対応していない。とりあえずこういう風に使える。

var Client = require('amazon-api-gateway-client').Client; var client = new Client({ accessKeyId: '...', region: '...', secretAccessKey: '...' }); // 新しくRestapi (API Gateway上で複数のエンドポイントをまとめる管理単位のこと) をつくる client.createRestapi({ name: 'MyRestapi' }).then(function (restapi) { // Restapiクラスのインスタンスが受け取れるので色々やる });

最近つくったstackable-fetcherのmiddleware stackの仕組みを積極的に使っていこうとしていて、Content-Typeがapplication/jsonのときにresponse bodyを勝手にdecodeしてくれるmiddlewareや、リクエストの内容を見てAmazon Signature version 4で認証してくれるmiddleware、リクエストとレスポンスのログをデバッグ用に出力してくれるmiddlewareなどをつくって開発に使った。Rubyを知っている人はFaradayみたいなやつです。stackable-fetcherは whatwgのFetch API を実装した node-fetch をHTTPクライアントのベースに利用していて、これがリクエスト時やレスポンスボディの読み込み時にPromiseを返す設計になっているので、処理の前後に何か差し込むmiddlewareの仕組みとわりと相性が良い。