公開日: 04/01/2021

HTTP Requestの例

以下の例は、米国航空宇宙局(NASA)のAPIと通信するものです。スクリプトを正しく実行させるには、https://api.nasa.gov/index.html#apply-for-an-api-keyからキーをリクエストして、それをkey変数に割り当てる必要があります。

データをログへ書き込む

key = "<key>"; // 取得したキーに置き換える
limit = 100;
url = "https://api.nasa.gov/patents/content";
request = New HTTP Request(
	URL( url ), // restAPIのエンドポイント
	Method( <"HTTP method"> ),
	Query String( // キーと値のペアを指定
		[["api_key" => key, "concept_tags" => "false",
		"limit" => limit]] // JSL の連想配列
	)
);
 
data = request << Send(); // リクエストをAPIに送信
Write( data );

{"count":100, "results":[{"category":"materials and coatings", "client_record_id":"patent_ARC-14661-3", "center":"ARC", "eRelations":[], "reference_number":"ARC-14661-3", ...}]}

// ログのJSON出力

注:

クエリ文字列は、URLの末尾の「?」の後に続きます。たとえば、https://www.google.com/search?q=jmpの場合は、“q=jmp”がクエリ文字列になります。New HTTP Request()はクエリ文字列(およびFORM)内のキーと値のペアを自動的にURIエンコードします。

クエリ文字列またはフォームとして連想配列を指定すると、キーと値のペアがURIエンコードされます。スペース、アンパサンド、およびその他の文字はASCIIにエンコードされ、アンパサンドはエスケープされます。エンコーディングは、パーセントエンコーディングです。

Webサービスには受け入れ可能なキーと値のペアの定義があります。有効なキーと値のペアについては、APIのドキュメントを参照してください。

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

key = "<key>"; // 取得したキーに置き換える
limit = 100;
url = "https://api.nasa.gov/patents/content";
request = New HTTP Request(
	URL( url ),
	Method( "Get" ),
	Query String(
		[["api_key" => key, "concept_tags" => "false",
		"limit" => limit]]
	)
);
 
json = request << Send();
 
jsl_json = Parse JSON( json );
// JSONデータをJSL連想配列にする
results = jsl_json["results"];
Write( results );

{["_id" => "53f65b3d5904da2c9fc3008f", "abstract" => "Method and system for functionalizing a collection of carbon nanotubes (CNTs).A selected precursor gas (e.g., H.sub.2 or NH.sub.3 or ...}

// 連想配列

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

key = "<key>"; // 取得したキーに置き換える
limit = 100;
url = "https://api.nasa.gov/patents/content";
request = New HTTP Request(
	URL( url ),
	Method( "Get" ),
	Query String(
		[["api_key" => key, "concept_tags" => "false",
		"limit" => limit]]
	)
);
 
json = request << Send();
jsl_json = Parse JSON( json );
dt = JSON To Data Table( As JSON Expr( jsl_json["results"] ) );
// 「JSON To Data Table」はJSONデータをデータテーブルに変換する
// 「JSON Expr」はJSLの連想配列をJSON文字列に変換する
dt << Set Name( "NASA Patents" );

図14.5 データテーブルに読み込まれたデータ 

Image shown here

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