【问题标题】:REST HATEOS: How to remove dependency on fixed URL?REST HATEOAS:如何消除对固定 URL 的依赖?
【发布时间】:2017-07-19 08:28:13
【问题描述】:

我们正在创建产品搜索页面。我们有大约 5 万只股票,即电子商务网站。

为了获取首页股票,客户通过以下 API 获取数据:

/api/stocks/?pn=1

作为响应,服务器发回:

  1. 第 1 页的股票数组
  2. 下一页网址,即 /api/stocks/?pn=2

HATEOS 建议“REST 客户端通过简单的固定 URL 进入 REST 应用程序。”

但我觉得它被违反了,因为我们在每个客户端上硬编码第一个 api url,即每个客户端都会硬编码这个 url "/api/stocks/?pn=1" 以加载第一页。

有什么办法可以避免这种硬编码?

【问题讨论】:

    标签: rest hateoas


    【解决方案1】:

    嗯,首先,您可以创建以下网址:

    /api/stocks
    

    这只会重定向到第一页。这样,用户就不必对您将来可能更改的特定参数进行硬编码。

    如果您通过 API 提供更多功能,第二步可能是创建一个登录页面。这基本上就是人类读者的“索引”页面,仅适用于机器:

    /api
    

    这将仅返回指向 /api/stocks 和 API 其他部分的链接。

    【讨论】:

    • 但是客户端有预算下拉菜单,所以如果用户填写预算,他们将不得不通过:/api/stocks/?budget=1-3,这会在客户端带来硬编码。如何避免这种情况?
    • 我明白了。如果客户端 选择/输入 事物,您必须从服务器端提供所有选项(以避免硬编码选项)。这意味着客户首先必须请求一个“页面”,然后在该页面上描述客户的选项以及如何提交。看看这个东西的想法:github.com/vanillasource/gerec/wiki/Forms
    • 我没有得到这个链接。你能建议一些其他的链接吗?我想从客户端中删除所有 API 硬编码。有可能吗?
    猜你喜欢
    • 2019-07-27
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 2010-09-20
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多