APIのベストプラクティスを考える会「APIStudy」の第4回が開催されました。今回もとても濃い内容となりましたのでご報告します。前回の第3回開催報告はこちら。appresso.hatenablog.com去る1月24日に開催された第4回は、株式会社フロムスクラッチさんのオフィスにお邪魔しました。今回も市川さんにグラフィックレコーディングをしていただきました。どんな仕上がりになるのか!楽しみです。(すっかりファンになりました私です)第1部フロムスクラッチさんLTまずはフロムスクラッチの井戸端さんからAPI連携開発における共通化についてお話がありました。マーケティングプラットフォームであるB→Dashでは、データ取得のため様々なサービスとAPIで連携をしています。連携するサービスごとにAPIの仕様が異なり、ひとつひとつ開発をしていたが辛いので、昨年、共通化できる部分はマスタを作成し、サービス固有のところだけを開発できるように取り組んだそうです。共通化することで、「新しい連携においてもマスタの追加だけで良くなった」「開発しやすくなった」「外部にも頼みやすくなった」とたくさんの嬉しいことがあったとおっしゃっていました。芹澤さんから「RESTfulなAPIにおけるファイルアップロード」についてです。API関連のお仕事ばかりで、API漬けの人生を送られている芹澤さん。そんな中で、ファイルの入力についてのベストプラクティス模索し、今回はその調査結果をご紹介していただきました。インプットの方法について。インプットは以下2つが主流パターンmultipart/formdataスタンダードな規格なので便利!Base64ファイルのデータをエンコードして文字列型として扱う。データの保存方式について。リソース紐付けパターン特定アトリビュートに対してファイルデータを直接送る方法。汎用ファイルアップロードパターンファイルアップロードのエンドポイントを作ってファイルを送る方法。それぞれ2つの方法を、APIの性質やファイルの用途で適切に組み合わせることがベストプラクティス!だそうです!!質問タイムLT発表者に対して質問をする時間。質問というより全体のディスカッションタイムみたいになっています。活発に意見が飛び交っていて、チーム分けの前のこの時点でもう楽しそうです。第2部チームに分かれて好きなテーマをもとに話し合います。今回のテーマは以下3つです。皆さん熱く討論をしています。少人数でのディスカッションなので、じっくり話すことができます。kintoneのWebhookを利用して通知する機能を新たに開発すればいいという提案をされていました。ディスカッションで新機能を提案しているのは新しいですね...。パラレルで叩くAPIの設計思想APIによっていろんなものをとってこようとしたときに、何か処理が発生してしまいます。これは、クライアント側でだときれいではないのでサーバー側で一枚ファサードみたいなもの、APIの前にAPIを作ってそこで全て処理していくと綺麗にいくのではないか、という結果になりました。なると「サーバーサイドでなんでもかんでもやることになる問題」も気にしなければならないど、バランスの良い設計について話し合うにはもう少し時間が必要のようです。ファサード入れることでアプリからアプリを解析されたときにエンドポイントがバレて攻撃を受けるリスクを少し低減されるようになると良いと、メリットもあることをお話いただきました。エラーコード(発生原因による切り分け)エラーコードだけでもなく200番台の話も。S3で分割アップロードするときは、とりあえず200を返すらしいです。AWSがそうなら長いものには巻かれましょう!また、複数返したいのなら207でカプセル化してボディで詳細とかもありではないかという意見も。お金払ってないからあなたは使えない!「402はすごい使ってみたかったから使いました!」by松本さん今後のステータスコード発掘に期待です。最後にまずは今回のグラフィックレコーディング!やはり素敵ですね。1部と2部、今回はかなり濃厚な内容でしたが、見事まとまっています。APIStudyは回を重ねるごとに内容の濃さが比例して増しているような気がしています。それが私はとてもうれしいです。開催報告は大変ですが。申込みがすでに始まっています!そしてもうたくさんの方にお申込みを頂いておりますありがとうございます!!!じっくりAPIについて語りたい方は、ぜひお越しください。以下connpassページからどうぞ。apistudy.connpass.comAPI愛が濃ければ濃いほど喜ばれる、そんな勉強会です。皆さん、宜しくお願いします。