🎉

Reactの開発でよく使われるOpenAPIを使ったスキーマ駆動開発とは何だ?

2023/11/20に公開

最近の開発環境

最近のモダンな開発現場ではOpenAPIを使っているみたいです。
参考書とかに載っていない技術で現場に出ないと知らないことが多いみたいです。

スキーマ駆動開発ができたら「お!この人現場のことを勉強している!」と評価されるみたいです。

スキーマ駆動開発とは

APIのスキーマを最初に定義して、定義をもとにバックエンドやフロントエンドの開発を進めるやり方です。
このやり方のおかげでフロントエンドとバックエンドのAPIの認識違いが発生しづらくなります。

これはなぜ必要か

フロントエンドとバックエンドは別れて開発することが多いですが、この開発手法にも問題があるみたいです。

  1. フロントエンジニアがバックエンドのコードを見ないとAPIの仕様がわからない

  2. バックエンドの開発が終わらないとフロントエンドの開発が進まなくなる

  3. フロントエンド側のAPIに関わるコードを手動でやらなければいけない

これらによって工数が多くなってしまい、非効率な稼働になってしまっているプロジェクトがあるみたいです。特に3番ではAPIの数が増えるほど毎回毎回APIを手動で開発し、人がやるのでエラーが発生してしまうリスクがあります。これらを解決するためにOpenAPIを使ったスキーマ駆動開発です。

OpenAPIとは何か

スキーマ駆動開発をやりやすくするためのツールです。以前はSwaggerと呼ばれていました。
言い方間違っていたらすみません。
実際に自分も現場でAPIの仕様が迷った時に非常に役に立ちました。こんな感じです。

スクリーンショット 2023-10-12 12.53.20.png

引用  https://blog.techscore.com/entry/2023/06/16/080000

上のようにAPIの仕様を視覚的にわかるようになります。postmanで叩くと実際にAPIが取得できたりします。

スクリーンショット 2023-10-12 13.02.31.png

引用 https://qiita.com/KNR109/items/7e094dba6bcf37ed73cf

そしてOpenAPIのおかげで、ダミーのAPIを作ることができて
フロントエンドのAPIに関係するコードを自動で作ることができます。

スキーマ駆動開発の種類

スキーマ駆動開発には以下の2種類があるみたいです。

スキーマファースト

スキーマファイル(OpenAPIでいうとAPIが定義されたYamlもしくはJSON)から
コードジェネレータを使ってコードを生成しAPIを開発していきます。

APIの使用をベースに、フロントエンド、バックエンドの開発をしていきます。

現場はこっちが多いみたいです。

コードファースト

コードからスキーマファイルを作ってAPIを開発していきます。
バックエンドのAPIをベースにAPIの仕様書を作成していきます。

有益な教材

こちらの教材もReactエンジニアになる上で有益なのでよかったら
使ってみてください。この教材も参考にさせてもらいました。

https://read-engineer.com/2022/11/06/brain-react/

資料

https://qiita.com/80andco_tech_pr/items/10af32308f7b22c8b052

https://www.aeyescan.jp/media/openapi

https://qiita.com/KNR109/items/7e094dba6bcf37ed73cf#openapi

https://techblog.raccoon.ne.jp/archives/1630923574.html

Discussion