使用 JSL 从 API 获取数据的详细指南全部,
我希望获得社区关于如何使用 JSL 连接 API 并将数据获取到 JMP 的指导。 我在社区中浏览了几篇关于此主题的帖子:
此外,我还联系了@Craige_Hales以获得有关同一主题的指导。 我向克雷奇提出的问题是:
我将坦白我对这个问题的无知和有限的知识,以免浪费您的宝贵时间。 我对 API 知之甚少,以前也没有使用过 API。
我对 JMP 中该主题的理解的简要概述如下:
1. JMP 可以从 API 流式传输信息,但限制是 API 应该是 http 而不是 https - 在我的例子中是 https
2. JMP可以连接到R,如果无法将数据从API流式传输到JMP,我希望将数据流式传输到R并将数据传递到JMP。 然而,我不确定这会给我的申请带来多少延迟。
3. 套接字是一个对象,它允许从连接到 API 或网络中的另一台计算机的信息流。 套接字允许传输和提交信息
它是否正确? 如果是,我将尝试构建一个测试脚本,从我的 API 传输信息。 如果不是,您能否纠正我并指导我找到有助于我完成此过程的资源
我正在处理一个可以在 https 上公开的 REST API。 身份验证机制基于 OAuth2 指南。
如果我只能在 JMP 之外实现这一点,我更愿意使用 R/Python
回复:使用 JSL 从 API 获取数据的详细指南由于 JMP 14 已推出近 9 个月,我想我添加了一些参考资料,其中以某种方式显示了这一点:
JMP 中的 REST 入门/ta-p/64104
和 example-of-http-requests.shtml
HttpRequest 很酷:)
最佳马丁
回复:使用 JSL 从 API 获取数据的详细指南我首选的是 R 中的 httr 包。它有非常成熟的get/request和解析能力,包括json。该文档很好,并且有很多示例。安装完成后,只需从第一个 API 将数据获取到 JMP 即可,我发现不需要登录信息:
Names default to here( 1 );
R Init( );
R Submit("
library(httr)
httpResponse <- GET(\!"https://swapi.co/api/people/1/?format=json\!")
parsedContent = as.data.frame(content(httpResponse, \!"parsed\!"))
");
dtHidden = R Get( parsedContent );
R Term();
dt = dtHidden << Subset( Link to Original Data Table(0) );

回复:使用 JSL 从 API 获取数据的详细指南我可以提供的最佳指导是等待几个月,直到 JMP 14 发布。 我想你会很高兴你这么做了,因为这样会容易得多。
回复:使用 JSL 从 API 获取数据的详细指南抱歉我没有做过这样的事。祝你好运!
回复:使用 JSL 从 API 获取数据的详细指南@杰夫·珀金森, @Wendy_Murphrey , @多发性硬化症, @pmroz
有什么想法吗 ?
回复:使用 JSL 从 API 获取数据的详细指南@Craige_Hales ,
请提供以下指导:
API是如何使用服务的规范。 即使在声称是的 API 中,也没有太多的标准休息-基于。 您很可能会进行大量阅读。
我想你之前提到过你必须认证到您想要使用的服务。 Twitter 身份验证是一个使用 OAuth2 的相当复杂的过程,我没有资格谈论它...我偶然发现了它并让它工作起来,它代表了 7-things 博客中的很多 JSL。
或者您可能使用密码进行更简单的身份验证。
当您连接到从浏览器访问网站,套接字将 html 从网站传输到浏览器。 通常html的长度是有限的,但是如果服务器上有一个程序生成html,它很可能会永远流式传输。
JMP 的套接字可以通过 http 来做到这一点。 Curl 可以使用 https(或 http)来做到这一点。 JMP 14 将内置curl 支持。
基于 REST 的服务可能会向您提供 json 数据。 (我无法跟上每个 JMP 版本的内容;我认为 13 有一些 json 支持,14 可能有更多。还有一些 jsl Xan,我之前玩过一段时间。) json 是嵌套的键值数据,不是特别人性化,但也不算太糟糕。
流数据的魔力之一是意识到,到目前为止,curl 或套接字将为您提供大部分数据。也许是小块的。因此您可能必须将其组装成完整的块并找出块边界在哪里。并挂在下一个块的最后几个字节上,并等待套接字或卷曲传递其余部分。 如果您查看连接示例,您就会有所了解……轮询套接字并在数据到达时生成越来越长的结果的循环。 尽管该示例知道数据应该是有限的,并且会等到所有数据都可用后再继续。 twitter 示例(在其中的某个地方,已经很长一段时间了)使用 RunProgram 从curl 永远获取流。 runprogram read 函数还将数据连接在一起,但偶尔会在看到数据具有完整块时处理数据。 对于套接字,存在显式循环。 在 twitter runprogram 逻辑中,循环是隐式的...runfunction 回调由从 twitter 接收更多数据的curl 程序驱动。