使用 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 程式驅動。