Reactの開発でよく使われるOpenAPIを使ったスキーマ駆動開発とは何だ?
最近の開発環境
最近のモダンな開発現場ではOpenAPI
を使っているみたいです。
参考書とかに載っていない技術で現場に出ないと知らないことが多いみたいです。
スキーマ駆動開発ができたら「お!この人現場のことを勉強している!」と評価されるみたいです。
スキーマ駆動開発とは
APIのスキーマを最初に定義して、定義をもとにバックエンドやフロントエンドの開発を進めるやり方です。
このやり方のおかげでフロントエンドとバックエンドのAPIの認識違いが発生しづらくなります。
これはなぜ必要か
フロントエンドとバックエンドは別れて開発することが多いですが、この開発手法にも問題があるみたいです。
-
フロントエンジニアがバックエンドのコードを見ないとAPIの仕様がわからない
-
バックエンドの開発が終わらないとフロントエンドの開発が進まなくなる
-
フロントエンド側のAPIに関わるコードを手動でやらなければいけない
これらによって工数が多くなってしまい、非効率な稼働になってしまっているプロジェクトがあるみたいです。特に3番ではAPIの数が増えるほど毎回毎回APIを手動で開発し、人がやるのでエラーが発生してしまうリスクがあります。これらを解決するためにOpenAPIを使ったスキーマ駆動開発
です。
OpenAPIとは何か
スキーマ駆動開発をやりやすくするためのツール
です。以前はSwagger
と呼ばれていました。
言い方間違っていたらすみません。
実際に自分も現場でAPIの仕様が迷った時に非常に役に立ちました。こんな感じです。
上のようにAPIの仕様を視覚的にわかるようになります
。postmanで叩くと実際にAPIが取得できたりします。
そしてOpenAPIのおかげで、ダミーのAPIを作ることができて
、
フロントエンドのAPIに関係するコードを自動で作ることができます。
スキーマ駆動開発の種類
スキーマ駆動開発には以下の2種類があるみたいです。
スキーマファースト
スキーマファイル(OpenAPIでいうとAPIが定義されたYamlもしくはJSON)
から
コードジェネレータを使ってコードを生成しAPIを開発していきます。
APIの使用をベースに、フロントエンド、バックエンドの開発をしていきます。
現場はこっちが多いみたいです。
コードファースト
コードからスキーマファイルを作ってAPIを開発していきます。
バックエンドのAPIをベースにAPIの仕様書を作成していきます。
有益な教材
こちらの教材もReactエンジニアになる上で有益なのでよかったら
使ってみてください。この教材も参考にさせてもらいました。
資料
Discussion