作為暑期實習生聯合管理計劃,我的項目涉及在網絡上使用 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 。