【问题标题】:How do I use a hash to fetch the schema consistently?如何使用哈希一致地获取架构?
【发布时间】:2017-08-02 21:01:53
【问题描述】:

Agile Central (Rally) WSAPI 文档架构部分说我可以获得这样的架构:

架构请求有一个可选的哈希值。如果不是 提供,服务将确定哈希并重定向请求 内部。请求不再是当前的哈希将重定向 到当前哈希。 项目的模式请求(服务计算出工作区): rally1.rallydev.com/slm/schema/v2.0/project/[ObjectID]/[Hash]

我需要一种一致的方式来获取架构没有重定向。 我不知道要为 [Hash] 输入什么内容才能创建可靠的架构端点。我注意到 [Hash] 的自动生成值会在某个时间间隔内过期。

如何附加哈希以获得一致的架构? 文档中没有示例,那么哈希是什么样的? 像这样?

rally1.rallydev.com/slm/schema/v2.0/project/12345/{"showMeTheModels": true}

还是这样?

rally1.rallydev.com/slm/schema/v2.0/project/12345/99999999

其中 12345 是我的项目 ID,99999999 是我自己选择/生成的任意数字。

提前致谢!

【问题讨论】:

    标签: hash schema rally wsapi


    【解决方案1】:

    该哈希值可通过您将架构范围限定到的项目或工作区上的 SchemaVersion 属性获得。如果您正在编写一个应用程序,则 App SDK 已经为您执行此操作,作为使用 ModelFactory 构建模型的一部分。

    否则一般流程是:

    1) 阅读 /project/12345?fetch=SchemaVersion
    2)阅读/schema/v2.0/project/12345/[schemaversionfromstep1]

    【讨论】:

    • 谢谢。您的解释确实应该在文档中。我仍然不明白发生了什么。我的 AJAX 调用一直在读取 /schema/v2.0/project/12345/ 并省略了“哈希”。 (我只是通过在浏览器中输入 URL 来尝试同样的事情)。是否省略“哈希”会导致在项目 ID 之后附加过期的随机“哈希”?
    • 我同意。还有很多其他的东西也很棒——批处理端点、高级获取/排序/过滤等。
    • 它重定向您的“随机”哈希应该是该项目的 SchemaVersion 的值。据我所知,它们是有效的,直到我们部署和滚动我们的应用服务器(每天大约 1 次),或者如果有人在该范围内更改架构 - 添加字段、更改可见性/必要性等。
    • 明白了。非常感谢您提供的额外信息。我仅限于使用 Tableau Desktop 应用程序中基于 QT 的浏览器。它似乎无法处理带有重定向的 AJAX,所以我一直得到空集。我正在使用您描述的编程方式来保证正确的 URL,并且效果很好!
    猜你喜欢
    • 2021-09-23
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 2014-03-30
    • 2016-11-14
    • 2011-08-06
    • 2013-07-12
    • 2014-01-30
    相关资源
    最近更新 更多