在构建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设计。