language-agnostic - 如何处理 Web 应用程序和 RESTful API 中合并的对象/资源?

标签 language-agnostic web-applications rest

我有一个 Web 应用程序,它有很多页面,其 URL 的形式为/object_type/object_id/,其中显示了此对象的详细信息。我还有一个 RESTful API,返回我的对象​​的 JSON/XML 表示(在/api/object_type/object_id/下)。 (我的对象是法律和法案,但我想这个问题相当笼统)。

有时,我发现我的两个或更多对象实际上是重复的,并且描述了现实世界中的同一个对象。假设它们是/Bill/111/和/Bill/222/。在幕后,我合并了 2 个对象,留下 1 个对象(比如/Bill/111/)包含所有信息,而另一个“空”只引用另一个对象。

我的问题是,我应该如何在 Web 应用程序和 API 中指示合并? 我不希望/Bill/222/返回 404,因为我可能有指向它的外部链接,我不希望它们被破坏。我应该使用 301 Moved Permanently 吗?我是否应该返回一个正常页面(状态为 200),说明此资源被检测为重复,并附有指向合并资源的链接?我应该如何在 API 中处理这个问题?例如,我应该在 Bills 索引中列出 222 吗?

最佳答案

我想我会在这种情况下使用 301,并停止在列表中包含 222。 301 的唯一原因是某些客户端已将 URL 加入书签。

关于language-agnostic - 如何处理 Web 应用程序和 RESTful API 中合并的对象/资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3234560/

相关文章:

scala - 如何从电梯网络应用程序读取文件

rest - 在微服务架构的每个服务中验证访问 token (JWT)

python - 为我的 tastypi 资源构建自定义过滤器

language-agnostic - Qt 小部件覆盖

multithreading - 什么时候多线程不是一个好主意?

algorithm - Dijkstra 图,最短路径

python - 我可以使用用户 Windows 登录自动登录 Web 应用程序吗?

language-agnostic - 出货前重构还是出货后重构?

python - 使用 Python 的 Google App Engine 中的图像属性?

android - 如何在 android 中以编程方式检查 Web 服务响应是否是有效的 json?