问题标签 [discoverability]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
356 浏览

rest - HATEOAS API 客户端不应该使用书签 URL 吗?

假设我想编写一个显示某些产品价格的应用程序。我发现了一个使用超媒体的链接,这是一种将产品名称作为输入的 HTML 表单。我将其添加为书签并继续将该链接嵌入到客户端中。

HATEOAS 客户端是否有理由再次重新发现该资源(和基础表单)而不是使用书签?

这些 URL 不应该保持不变(包括表单语义)吗?重新发现新开发的 API(并保证兼容性)是否比保持旧 API 工作更轻松?

0 投票
2 回答
804 浏览

rest - HATEOAS 超媒体的运行时发现?

我理解 HATEOAS 通过发送所有可以在应用程序内执行的操作作为响应(HAL、JSON-LD 等)来表示应用程序状态。

例如,查看银行的账户资源可能允许您存款、取款或关闭账户(可能返回 UPDATE 和 DELETE 动词的选项)。

就这些链接的运行时可发现性(由消费客户端)而言,如何处理呢?

如果发送这些链接的目的是将客户端与服务器解耦并通过响应中的超媒体驱动状态,则开发人员必须在应用程序中硬编码一定数量的知识才能理解响应的含义回来。

我理解发送 OPTIONS 请求是确定资源当前状态以及下一步可以做什么的方法,但是为了发现要使用的实际 URI - 这些是否会简单地硬编码为 COOL URI?

0 投票
2 回答
59 浏览

rest - Restful提供和使用Web Service java

在提供 Restful Web 服务(在 java 中)时,有没有办法像在 soap 服务 wsdl 中一样公开服务内部的方法及其参数是什么?

Web 服务的消费端如何知道可以使用的可用方法是什么?(我只想通过它的 URL 使用 Web 服务)。

我将 NetBeans 8.0.2 与 Apache Tomcat 一起使用。

先谢谢了。

0 投票
3 回答
1905 浏览

json - HAL - 如果链接在主体中,是否违反 HAL 格式/标准?

根据HAL 标准(请参阅此处此处),指向其他资源的链接应放置在特定的嵌入部分中。

因此,例如这不是有效的 HAL,我的理解是否正确?

上述 JSON 无效 HAL 的原因是链接应放置在嵌入部分(“_embedded”)中,该部分链接到主体中的 ID。所以正确的方法是:

以上都是正确的吗?

谢谢

0 投票
2 回答
234 浏览

rest - HAL 关系类型 (rel) 与链接名称属性

我试图了解使用关系类型和带有名称属性的链接之间的细微差别。

也许一个例子最能说明我的问题。考虑一个代表同行评审文章的 HAL 格式响应:

我试图用这个例子展示的关键是文章资源包含多个与同一类型资源的语义不同的关系。在此示例中,文章具有指向作为文章作者的作者的链接以及指向对文章进行同行评审的作者的链接。

在上面的示例中,我将它们定义为两种不同的关系类型。根据我对HAL 规范Web Linking 规范的阅读,上述方法既有效又与许多示例一致。

但是...如果我将相同的响应格式化如下:

在此示例中,我选择使用 Relation Type 来指示资源类型,并根据 Link 的 Name 属性来缩小关系的含义。

从务实的角度来看,我发现后一种方法很有吸引力。我可以想象客户端应用程序的作者使用关系类型作为资源缓存的键。在这种情况下,客户端将拥有单个作者资源缓存,而不是具有重复条目的独立作者和审阅者缓存(其中作者也是审阅者。)我意识到单个异构资源缓存可以避免这种情况和/或推送缓存对浏览器的责任(应该是恕我直言),但是......再次,这是务实的观点。许多 web 应用程序在内部处理缓存,并希望每种资源类型都有一个缓存(可能按资源类型应用不同的策略。)

我也喜欢后一种方法,因为根据HAL 规范,我可以利用链接的名称属性“作为选择共享相同关系类型的链接对象的辅助键” 。我不禁将规范中的那一行读为“......相同的资源类型”。

最后但并非最不重要的一点是,我想知道这两种方法将如何影响这些链接的文档。具体来说,作为“扩展关系类型”,“x:author”和“x:reviewer”关系类型应该在其 url 上有可用的文档(直接或通过 CURIE)。如果我遵循后一种方法,使用链接名称属性,那么文档将需要描述资源关系的命名变体的子部分。

我进行了一些搜索,但没有找到任何使用链接名称属性的示例。我很想看到一些,和/或从作者那里听到更多关于该领域意图的信息。


更新..

到目前为止的响应都强调关系类型旨在反映上下文与 href 处的结果之间的关系,而不是该目的地的资源类型。

这是可以理解的,但如果可能,请详细说明 Link 的 Name 属性的用途。 它与关系类型的区别是什么?

0 投票
0 回答
30 浏览

r - 使图表在 R 笔记本中可发现

在 R 笔记本中,是否可以使图形可发现?我希望仅在用户想要查看图表时才显示该图表。

想象一下这样一种情况,有些读者可能希望看到我不想在默认情况下显示的详细程度,因为我希望它会分散大多数读者的注意力或使他们感到困惑。

我能想到的最好的方法是使用选项卡并将默认选项卡设为空。但这感觉有点像黑客。还有其他实现可发现性的方法吗?

隐藏标签

显示选项卡

0 投票
0 回答
31 浏览

java - 在 Android 上打开/关闭蓝牙时永久删除可发现性检查

我正在开发一个被认为可以长时间运行的 Android 应用程序。在某些时候,我需要与一些蓝牙设备(3.0 和 BLE)进行通信,所以我的想法是在需要时打开蓝牙,然后在其余时间将其关闭。

当我打开 BT 时,我的问题就出现了,并且总是弹出我们说我的设备可被发现的警报,我希望删除此警报。

四处寻找解决方案,我尝试了:

都失败了,站在BT状态从ON -> OFF -> ON切换后,关于可发现性的对话框再次出现。

有一种方法可以永久删除此警报,在蓝牙开启/关闭之后也是如此?!

提前致谢