hogehogeプログラマ

PHPer。趣味ではServerless Frameworkをメインで触ってます

Serverless FrameworkでQRコードを生成するAPIを作成する

QRコードを生成してS3に格納するAPIを作ってみました。
以下Githubになります。

github.com

README記載の手順でQRコードの作成&削除のAPIが作成できます。
以降は開発中に調べた内容になります。

ハマった点

src/create.jsにて生成したコードをS3に送信する前に
ストリームデータにサイズを設定しないと以下のようなエラーが発生します

Error: Cannot determine length of [object Object]

そこでtransform内の処理で合計サイズを取得しinputStreamに設定することで対応しました

nodejsについて詳しくないのでもう少しいい方法があったら教えていただきたいです

API Gatewayについて

API Gatewayのバイナリサポートは現状プラグインを導入する必要があるようです。
今回は画像取得用のAPIを作らず、S3の画像に直接アクセスできるように
public-read権限を付与する形で対応しました。
もしバイナリサポートを有効にしたい場合は以下のプラグインを使うといいようです。
www.npmjs.com

また、入力値のチェックはAPI GatewayではなくLambda側で処理するようにしました。
API Gateway側で制御したい場合は現状以下のようなプラグインを導入する必要があるようです。 www.npmjs.com