【问题标题】:REST GET Design IssueREST GET 设计问题
【发布时间】:2014-08-30 13:56:15
【问题描述】:

我目前是 RESTful 架构的新手,正在使用 Jersey 进行练习。我在实现 GET 操作时遇到了困难。遵循 REST 命名/URL 约定从服务器获取特定客户将是

获取http://www.example.com/customers/33245

但是,在设计客户端时,客户端如何知道特定 id 属于该特定客户,因为它位于与服务器链接的数据库中并且对客户端隐藏。我想到的一种实现是从数据库中提取有关所有客户的所有信息并存储在客户端中,但我相信它会扼杀整个目的。寻找特定客户的最佳方式应该是什么。

【问题讨论】:

    标签: java rest get jersey


    【解决方案1】:

    这样的 URL 用于获取您已经认识的客户。不用于搜索客户。

    对于搜索客户,您通常会使用类似的网址

    http://www.example.com/customers?name=Doe&firstname=John
    

    这将列出所有名为 John Doe 的客户,并且该列表将包含每个客户的已找到客户的 ID。然后,客户端将使用此 ID 调用您问题中的 URL 并获取有关此客户的详细信息。

    您当然可以使用任何您想要的查询条件,或者允许通过其他方式访问客户。

    如果您仔细想想,这正是网络搜索的工作原理。你不知道一个页面的 URL,你在 Google 上通过关键字搜索这个页面,它会返回一个包含页面标题、描述和 URL 的结果列表,然后你使用 URL 来实际访问该页面。

    【讨论】:

    • 我要补充一点,向每个名为 John Doe 的客户返回 URL 列表而不是 ID 列表是一种更好的做法。这样,客户端甚至不必创建 URL,它只使用服务器创建的内容。
    猜你喜欢
    • 1970-01-01
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    相关资源
    最近更新 更多