READYFOR Tech Blog

READYFOR のエンジニアブログ

スキーマ設計からAPI開発の中でお世話になったツールたち

こちらはREADYFOR Advent Calendarの21日目の記事です。

こんにちは、READYFORバックエンドエンジニアの森です。
普段はRubyを使っていますが、最近のマイブーム言語はJuliaです。

さてREADYFORでは、今年の頭ごろから、クラウドファンディング実行者の方が触るプロジェクト管理画面をSPA化する改修を行なっています。
フロントエンドと一緒にスキーマ設計をした後、バックエンドはAPIの開発を行なってきたのですが、その中でお世話になったツールについて紹介したいと思います。

フロントエンド側については、11日目の記事で江面さんが触れているので、こちらもぜひ!

tech.readyfor.jp

お世話になったツールについて

スキーマ設計からAPI開発において、主にお世話になっていたツールは下記の3つです。

  • Zeplin
  • Stoplight Studio
  • Postman

Zeplin

https://zeplin.io

フロントエンドとバックエンドで、APIのエンドポイントやリクエスト、レスポンスについて決めていく際にお世話になりました。
デザイン自体はFigmaで作っていたのですが、「Figmaにコメントしていくとデザインへのコメントと混ざってごちゃごちゃとしてしまいそう」という事で、Figmaで作ったデザインをZeplinにインポートし、そこでコメントを書きこむことにしました。

Zeplinを使ったAPIの認識合わせ
Zeplinに書き込んだAPIの情報等

ここでは、主に

  • どこでどのタイミングでAPIへのリクエストが飛ぶか
  • リクエストするAPIのメソッドとパス
  • リクエスト/レスポンスのイメージ
  • その他メモや検討事項

といった内容を書き込んでいます。

一通り洗い出したところで、SPA/API開発に知見のある方に意見をいただきつつ、フロントエンドとバックエンドで認識を擦り合わせてから、スキーマ定義の記述を進めていきました。
スキーマ設計やAPI開発にあまり慣れていなかったこともあり、ベースが無いまま進めていくと工数が膨らんでいたと思うので、先に実際のデザインと合わせて認識を揃えることができて良かったと思っています。

zeplin.io

Stoplight Studio

https://stoplight.io/studio/

OpenAPI仕様に則ったスキーマ定義を記述する際にお世話になったエディタです。
簡易的なmockサーバもついているので、スキーマ更新後すぐにmockで確認することもできます。
正数で返ってきて欲しいところがmockでは負数になってしまったりと、ちょっとした調整が難しいところもありましたが、GUIでYAMLを書き込んでいくことができるので、OpenAPI初心者はとても助けられました。

Stoplight Studioを使って更新していたYAMLファイルがすでに肥大化しつつあるので、今は分割する方向での検討が進められています。
YAMLの構成や管理については、8日目に熊谷さんが記事を公開しているので、「OpenAPIのYAML大きくなってきたんだよな〜」という方は、ぜひこちらも読んでみてください!

qiita.com

stoplight.io

Postman

https://www.postman.com/

開発中のAPIを実行する時にお世話になっています。

序盤はcurlでAPIを叩いて実行結果を確認しつつ開発を進めていたのですが、Cookieを利用しているところがあったりと、流石にcurlでの確認に限界を感じてきました。
Postmanでは、ブラウザとCookieを同期することができると知り、導入も難しくなさそうだったのでcurlからPostmanへ乗り換えました。

Cookieの同期設定は、Chromeの拡張機能「Postman Inceptor」を利用します。
拡張機能とPostmanのアプリをインストールした後は

  1. ブラウザで「Capture requests」をONにする
  2. 対象サイトをドメインでフィルタリングする(必要に応じて)
  3. Postmanのアプリで「Capture Cookies」をONにし、ドメインを指定して同期する

の流れでブラウザとCookieを同期できるようになるので、Cookieを利用しているところの確認が楽にできるようになりました。
Cookieの同期の詳細については、「Using Postman Interceptor | Postman Learning Center」にドキュメントがあります。

www.postman.com

まとめ

今回挙げたツールも、それ以外にも、開発が進むに連れて合わなくなっていったものや、検討時に見送ったものもいくつかあります。
世の中色々と便利なツールはあるものの、必要な要件を満たすツールは何か?を探し、見極めるのは、なかなか難しいなぁと改めて思う今日この頃です。

明日12月22日は、頼れるエンジニア採用担当・西和田さんの担当です。お楽しみにー!