作为暑期实习生联合管理计划,我的项目涉及在网络上使用 API。在项目的前几周,我经历了一些学习曲线,因为我试图让不同的 API 在 JMP 中工作,或者如果可能的话。 当我在一个名为的视频中看到这个类比时,我能够达到一个理解点什么是 RESTful API? REST 和 HTTP 的解释:
想象一下你在一家餐馆。 你是消费者/用户,是为了从别人那里得到你想要的东西而进行交互的人。 来点餐的服务员可以比作一个API;服务员会过来接受你的订单,然后拿走(发送)它回到厨房(或者在这种情况下,服务器或 API 可能与之通信的任何类型的软件) 。 订单完成后(或者软件或服务器给出响应) ,服务员会回来给你点菜(满足您的要求) 。 请求已完成!
找到这个类比后,我对 API 的工作原理有了一个很好的思维模型。
我的项目的重点是创建一个联合管理计划可以访问网络上的 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 。