作为暑期实习生JMP ,我的项目涉及在网络上使用 API。在项目的前几周,我有一些学习曲线,因为我试图让不同的 API 在 JMP 中工作,或者甚至可能的话。 当我在一个名为什么是 RESTful API? REST & HTTP 的解释:
想象你在一家餐馆。 您是消费者/用户,是交互以从其他人那里获得您想要的东西的人。 来接你点菜的服务员可以比作一个API;服务员会来接你的订单,然后拿(发送)它回到厨房(或者在这种情况下,服务器或 API 可能与之通信的任何类型的软件) . 订单完成时(或软件或服务器给出响应) , 服务员会回来给你点菜(满足您的要求) . 请求完成!
在我找到这个类比之后,我对 API 的工作方式有了一个很好的心智模型。
我的项目的重点是创建一个JMP可以访问 Web 上的 REST API 的加载项。我需要展示一些工作示例,并向用户介绍 REST API,并帮助他们了解在使用插件时幕后发生的事情。

这个项目背后的动机是 JMP 14 中 HTTP Request() 的新特性。 API,特别是 REST 的架构风格,仍然被认为是相对较新的东西。 我的第一个挑战是学习 REST:
REST 或 RESTful API 是具有 REST 架构风格的组件和质量的 API。 REST 代表 Representation State Transfer,它定义了一个协议和一组标准操作,用于说明设计良好的应用程序应该如何表现。 REST 主要由浏览器使用,该框架可以称为“互联网语言”。 要被认为是 RESTful,应用程序必须具有六个主要属性:客户端-服务器架构、无状态、可缓存性、分层系统、按需执行代码的能力以及具有统一接口。 从最终用户的角度来看,API 是否为 RESTful 并不重要,但在编程方面,RESTful 有很多优势,这就是它成为 API 标准的原因。
我遇到的下一个挑战是 JSL。 我不确定如何在 JSL 中为插件创建 UI,因此我查看了 Appbuilder for JMP。 我决定使用 Appbuilder 处理插件,因为我可以将后端脚本与前端脚本(或在本例中为 Appbuilder)分开,并以可视方式组织所有内容。
这是最终产品的样子:

我做了研究并将其编译到顶部的“帮助”按钮中,供那些想要更多描述不同身份验证方法的人使用。 它提供了我们将处理的每种身份验证类型的描述。
接下来是有趣的部分。 我发现可以在我的加载项中使用不同的 API。 CAT API 是我个人最喜欢的,所以我用了两次(一次是没有身份验证,一次是有身份验证)。 每次点击发送,都会弹出一只新猫!


在使 Cat API 正常工作后,我发现了其他几个很好的示例,并将我最喜欢的示例包含在加载项中。

我特别喜欢研究 Tumblr 示例,因为它检索到的信息非常多(整个 tumblr 博客)。 我无法使检索到的信息看起来那漂亮,但我认为它仍然做得很好。 对于任何希望检索不同 Tumblr 帖子信息的人,他们可以在此处切换 JSL 脚本中的 Tumblr 博客地址:

最后一个例子很特别。 Dropbox 是其他主要开发人员之一已经研究过的示例。 我想将此示例集成到我的插件中,以尝试使其尽可能用户友好,以便没有编程经验的任何人都可以使用它。 它可以通过 JMP 单击按钮远程上传文件和文件夹,这一事实仍然让我感到震惊。

我希望你会尝试一下。 请留下您的任何问题或意见。
有关使用插件本身的说明,请参阅我的帖子开始使用 REST .