公開日: 11/25/2021

HTTP Requestの例

以下の例は、米国航空宇宙局(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のドキュメントを参照してください。

データを連想配列として戻し、ログに書き込む

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)....}}

// 連想配列

データをJMPデータテーブルとして戻す

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 データテーブルに読み込まれたデータ 

Data Imported in a Data Table

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).