JSL を使用して API からデータを取得するための詳細なガイダンス全て、
JSL を使用して API から JMP に接続してデータを取得する方法についてコミュニティのガイダンスを取得したいと考えています。 私はこのトピックに関するコミュニティでのいくつかの投稿を検討しました。
さらに、私が連絡を取ったのは、 @Craige_Hales同じトピックに関するガイダンスが必要です。 クレイジさんへの私の質問は次のとおりです。
あなたの貴重な時間を無駄にしないように、この件に関して私の無知と限られた知識について率直に述べます。 私は API についてほとんど知識がなく、これまで API をあまり扱ったことがありませんでした。
JMP 内のトピックについて私が理解していることの簡単な概要は次のとおりです。
1. JMP は、API が https ではなく http である必要があるという制約付きで、API から情報をストリーミングできます。私の場合は https です。
2. JMP は R に接続できますが、API から JMP へのデータのストリーミングが不可能な場合は、R にストリーミングしてデータを JMP に渡すことを希望しています。 ただし、アプリケーションにどの程度の遅延が発生するかはわかりません。
3. ソケットは、API またはネットワーク内の別のコンピューターへの接続からの情報のストリーミングを可能にするオブジェクトです。 ソケットにより情報のストリーミングと送信が可能になります
これは正しいです? 「はい」の場合は、API から情報をストリーミングするテスト スクリプトの構築を試みます。 「いいえ」の場合は、親切に訂正して、このプロセスに役立つリソースを案内していただけますか
私は https で公開できる REST API を扱っています。 認証メカニズムは OAuth2 ガイドラインに基づいています。
これを JMP 以外でしか実現できない場合は、R/Python を使用することを希望します。
Re: JSL を使用して API からデータを取得するための詳細なガイダンスJMP 14 はほぼ 9 か月間利用可能であるため、これが何らかの形で示されている箇所に参照を追加すると思います。
JMP での REST 入門/ta-p/64104
および http-requests.shtml の例
HttpRequest はクールです:)
ベストマーティン
Re: 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) );

Re: JSL を使用して API からデータを取得するための詳細なガイダンス私が提供できる最善のガイダンスは、JMP 14 がリリースされるまで数か月だけ待つことです。 そうすればずっと簡単になるので、きっと喜んでいただけると思います。
Re: JSL を使用して API からデータを取得するための詳細なガイダンス申し訳ありませんが、このようなことは何もしていません。幸運を!
Re: JSL を使用して API からデータを取得するための詳細なガイダンス@ジェフ・パーキンソン、 @ウェンディ・マーフリー、 @MS 、 @pmroz
何かご意見は ?
Re: JSL を使用して API からデータを取得するための詳細なガイダンス@Craige_Hales 、
親切に次のようなガイダンスを提供してください:
APIとは、サービスを利用するための仕様のことです。 と主張する API の中でも標準というものはあまりありません。休む-ベース。 おそらく、たくさんの本を読むことになるでしょう。
先ほどそうしなければならないとおっしゃったと思いますが、認証する利用したいサービスへ。 Twitter 認証は OAuth2 を使用した非常に複雑なプロセスですが、私にはそれについて話す資格がありません...私はそれをつまずいて動作させることができました。これは 7-things ブログの JSL の多くを表しています。
あるいは、パスワードを使用したより簡単な認証を行うこともできます。
に接続するときブラウザから Web サイトにアクセスすると、ソケットがサイトからブラウザに HTML をストリーミングします。 通常、HTML の長さは有限ですが、サーバー上に HTML を生成するプログラムがある場合は、HTML が永久にストリーミングされる可能性があります。
JMP のソケットは http を使用してそれを行うことができます。 Curl は https (または http) を使用してそれを行うことができます。 JMP 14 には、curl サポートが組み込まれます。
REST ベースのサービスでは、JSON データが渡される可能性があります。 (各 JMP リリースの内容についていくことはできません。13 にはある程度の json サポートがあると思いますが、14 にはさらにサポートがあると思います。jsl Xan もあり、私はしばらく前にそれを試しました。) json はネストされたキーと値のデータです。 、特に人間に優しいわけではありませんが、それほど悪くもありません。
ストリーミング データの魅力の 1 つは、現時点では、curl (ソケット) がほとんどのデータを提供してくれるということです。そしておそらく小さな塊で。したがって、それを完全なチャンクに組み立てて、チャンクの境界がどこにあるのかを把握する必要がある場合があります。次のチャンクの最後の数バイトを保持し、残りがソケットまたはカールによって配信されるのを待ちます。 接続の例を見れば、それが理解できるでしょう...ソケットをポーリングし、データが到着するにつれてより長い結果を作成するループです。 この例では、データが有限である必要があることがわかっているため、すべてが使用可能になるまで待ってから続行します。 Twitter の例 (その中のどこかで、かなり時間がかかっています) は、RunProgram を使用して、curl からストリームを永遠に取得します。 runprogram read関数もデータを連結しますが、完全なチャンクがあると判断した場合にはデータを処理することがあります。 ソケットには明示的なループがあります。 Twitter の runprogram ロジックでは、ループは暗黙的です。runfunction コールバックは、twitter からさらに多くのデータを受信するcurl プログラムによって駆動されます。