REST APIを構築する場合、バージョン2の応答に追加されるフィールドは、バージョン1のエンドポイントへの呼び出しからの応答で返される必要がありますか?例として 追加されたフィールドは、より低いAPIバージョンで表示する必要がありますか?
、エンドポイントapi/v1/users/1
与えられ、応答があってもよい:
{
"first_name":"david"
}
そしてV2で、エンドポイントapi/v2/users/1
与えられ、応答があると、更新することができる:
{
"first_name":"david",
"last_name":"smith"
}
なりますv1エンドポイントへの呼び出しで返されたv2エンドポイントへの呼び出しから返された同じ応答を持つことは悪い習慣ですか?私の最初の考えはイエスですが、この変更が壊れないので、もう一度私は問題を見ません。
LaravelとEloquentを使用してバージョン管理されたAPIを構築する方法を見つけようとしていたことから、問題が発生しました。私はEloquentでこれを達成する方法を簡単に見ることができず、モデルをバージョン管理されたモデルにマップするか、フィールドを制御するためにQueryBuilderですべてのリポジトリを作成する必要があります。 LaravelとEloquentとしてタグ付けされているのは、それらが私が使用している特定のフレームワークであり、誰かがそれらを使用する解決策を持っているかどうかを見たいと思っているからですが、一般的にapiデザインの問題です。