以下の例は、米国航空宇宙局(NASA)のAPIと通信するものです。スクリプトを正しく実行させるには、https://api.nasa.gov/index.html#apply-for-an-api-keyからキーをリクエストして、それをkey変数に割り当てる必要があります。
url = "http://technology.nasa.gov/api/query/patent/all";
request = New HTTP Request( URL( url ), Method( "Get" ) );
data = request << Send();
Write( data );
{"results":\\[\\["59fa04859600022b4d2e076f","LAR-TOPS-48","All-Organic Electroactive Device","NASA's Langley Research Center offers you an all-organic electroactive device system fabricated with single-wall carbon nanotube (SWCNT)....}
// ログのJSON出力
メモ:
• クエリ文字列は、URLの末尾の「?」の後に続きます。たとえば、https://www.google.com/search?q=jmpの場合は、"q=jmp"がクエリ文字列になります。New HTTP Request()はクエリ文字列(およびFORM)内のキーと値のペアを自動的にURIエンコードします。
• クエリ文字列またはフォームとして連想配列を指定すると、キーと値のペアがURIエンコードされます。スペース、アンパサンド、およびその他の文字はASCIIにエンコードされ、アンパサンドはエスケープされます。エンコーディングは、パーセントエンコーディングです。
• Webサービスには受け入れ可能なキーと値のペアの定義があります。有効なキーと値のペアについては、APIのドキュメントを参照してください。
• Kerberos認証のパスワードは次のように指定します。
Password(":")
url = "http://technology.nasa.gov/api/query/patent/all";
request = New HTTP Request( URL( url ), Method( "Get" ) );
json = request << Send();
jsl_json = Parse JSON( json );
// JSONデータをJSL連想配列にする
results = jsl_json["results"];
Write( results );
{{"59fa04859600022b4d2e076f", "LAR-TOPS-48", "All-Organic Electroactive Device", "NASA's Langley Research Center offers you an all-organic electroactive device system fabricated with single-wall carbon nanotube (SWCNT)....}}
// 連想配列
url = "http://technology.nasa.gov/api/query/patent/all";
request = New HTTP Request( URL( url ), Method( "Get" ) );
json = request << Send();
jsl_json = Parse JSON( json );
json = As JSON Expr( jsl_json["results"] );
dt = JSON To Data Table(
json,
JSON Settings(
Stack( 0 ),
Col(
"/root",
Column Name( "root" ),
Fill( "Use Once" ),
Type( "Pandas Values" ),
Format( {"Best"} ),
Modeling Type( "Continuous" )
)
)
);
dt << Set Name( "NASA Patents" );
図14.5 データテーブルに読み込まれたデータ
Windows SSPIでcurlを使用すると、証明書が失効したとみなされる場合があります。
Verify SSL(1)メッセージをNew HTTP Request()オブジェクトに送信すると、CAバンドルのCURLSSLOPT_NO_REVOKEオプションが設定されます。
Names Default To Here( 1 );
request = New HTTP Request(
Url( "https://developer.mozilla.org/en-US/docs/Web/HTTP/Conditional_requests/cache1.png" ),
Method( "GET" ),
Verify SSL( 1 )
);
bytes = request << Send;
img = Open( bytes, jpg );
obj = New Window( "Mastering JMP", img );