Rails APIについて学習しています。
URL:http://localhost:3000/api/v1/articles
や、
RL:http://localhost:3000/api/v1/articles/[:id]
に、
アクセスした時のレスポンスとしてJSONを返すようなプログラムを実装しています。
その際、URLに指定する「v1」というワードが気になったので、調べてみました。
使用環境
- Ruby 2.6.6
- Rails 6.0.2.1
- jsonのserializer は fast_jsonapi を使用。
テーブル
以下、モデル・テーブルを事前に準備していることを前提にしています。
- Userテーブル
- Profileテーブル
- Articleテーブル
- Commentテーブル
【本題】v1とは何を表しているの?
- それは一般的にAPIのバージョンを表している。
- APIの設計においては、後方互換性を壊さないように新しいバージョンを作ることがある。
- そのときに、v1やv2といった形でバージョンをURLに含めることが多い。
web APIのバージョンを管理する方法について
いくつかバージョンの管理方法があるようなのですがURIにバージョンを埋め込むのがよく利用される方法のようです。
引用:Rails APIのルーティングnamespaceってなんで使うの?
後方互換性とは
後方互換性は、言い換えれば、旧製品に対して互換性を持っている新製品の性質である。例えば、CDが再生できるDVDドライブは、CDの規格に対して後方互換性がある。
最後に
全く別の例えですが、プレステ5でも、プレステ4のソフトが遊べます。
Rails APIにおいても、複数のバージョンを持っている事がわかりました。
複数のバージョンを提供する事で、不足の事態に備えるなどのリスク管理をしているわけですね。
参考サイト