代码之家  ›  专栏  ›  技术社区  ›  Ofri Raviv

如何在web应用程序和restfulapi中处理合并的对象/资源?

  •  2
  • Ofri Raviv  · 技术社区  · 14 年前

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

    2 回复  |  直到 14 年前
        1
  •  2
  •   Darrel Miller    14 年前

    我想我会用301来处理这个案子,不会再把222列入名单。使用301的唯一原因是,如果某个客户端将该URL添加了书签。

        2
  •  1
  •   mogsie    14 年前

    @达雷尔·米勒:

    我想我会用301来处理这个案子,不会再把222列入名单。使用301的唯一原因是,如果某个客户端将该URL添加了书签。

    我只想补充一点,系统应该接受指向/Bill/222和/Bill/111的链接作为等效链接,即如果用户正在编辑/Joe/999,表明/Bill/222是Joe的朋友:

    PUT /Joe/999
    Content-Type: vnd.xxx+xml
    
    <name is-friend-of="/Bill/222">Joe</name>
    

    这在语义上应该与befriending/Bill/111相同,实际上,在发布了上面的PUT之后,当我得到它时,我看到链接被更改为111,这并不奇怪。