WebサービスのURLマッピングとクエリ文字列について理解する (Real-Time、Windows)
- 更新日2025-08-27
- 5分で読める
親トピック: URLを使用してデータをパブリッシュされたアプリケーションに送信する
WebクライアントはURLを使用して、パブリッシュされたWebサービスとデータの交換を行います。URLマッピングとクエリ文字列は、このURLの一部を構成しています。
- URLマッピング―ホストWebサーバがHTTP要求を特定のHTTPメソッドVIまたはスタティックファイルにポイントする際に使用する識別子の役割を果たします。各HTTPメソッドVIとスタティックファイルには、URLマッピングが1つあります。
- クエリ文字列―値を識別し、HTTPメソッドVIのコネクタペーン上の入力パラメータに割り当てます。疑問符、制御器ラベル、等号記号、制御器に割り当てる値を追加して、URLマッピングの末尾に入力パラメータを追加します。
Add.viというHTTPメソッドVIでは、URLマッピングが自動的に/Addと定義されます。VIにaおよびbという入力が含まれている場合、このURLおよびクエリ文字列/Add?b=2&a=3によって、入力に値が割り当てられます。この例では、 クライアントが使用するURLはhttp://127.0.0.1:8080/WebService/Add?b=2&a=3になります。
| メモ デフォルトのURLマッピングを使用せずに、URLマッピングをカスタマイズすることもできます。カスタマイズすると、HTTPメソッドVIの入力パラメータにどのように値が割り当てられるかが変更されます。 |
クエリ文字列から入力パラメータ値を省略する
クライアントでは、クエリ文字列から任意の入力パラメータを省略することができます。入力パラメータ値が省略された場合、VIに保存されている入力端子のデフォルト値が使用されます。たとえば、Add.viというHTTPメソッドVIがあり、制御器のラベルがaおよびbの場合、次のURLマッピングとクエリ文字列を使用したHTTP要求は有効と見なされます。
- /Add?b=2&a=3
- /Add?a=3 (b制御器ではデフォルト値を使用)
- /Add?b=2 (a制御器ではデフォルト値を使用)
- /Add (両方の制御器のデフォルト値を使用)
URLマッピングをカスタマイズする
Webサービスでは、デフォルトのURLマッピングを使用できるのが普通です。しかし、上級レベルの使用事例として、HTTPメソッドVIのURLマッピングをカスタマイズすることもできます。以下の手順に従って、HTTPメソッドVIのカスタムURLマッピングを構成します。
- Webサービスのプロジェクト項目を右クリックし、プロパティを選択します。
- WebサービスプロパティダイアログボックスのHTTPメソッドVI設定ページに移動します。
- VIの一覧表から、カスタマイズするURLマッピングが入ったHTTPメソッドVIを選択します。
- URLマッピングタブで、標準URLマッピングを使用のチェックマークを外し、URLテキストボックスを編集できる状態にします。これで、Webサービスの名前と、このVIが属するWebリソース (該当する場合) の後のURL部分を編集できるようになります。つまり、IPアドレス、ポート、Webサービス名、Webリソース名 (存在する場合) は編集できませんのでご注意ください。
URLマッピング文字列は、必ずスラッシュで開始し、標準のHTTP構文に従っている限り、どのような値でも指定できます。このベースの後に、スラッシュ、コロン、関連付けられたHTTPメソッドVIのコネクタペーン入力のラベルという構文で入力パラメータを追加します。この構文は、クエリ文字列をデフォルトのURLマッピングに追加してパラメータ値を設定する方法とは異なります。
カスタムURLマッピングの一例として、/Add/:a/:bを挙げます。/Addという文字列はURLマッピングのベースであり、/:a/:bはHTTPメソッドVIの入力パラメータです。URLマッピングでHTTPメソッドVIに渡す入力パラメータを指定しない場合は、VIの各入力端子にデフォルト値が設定されていなければなりません。
URLマッピングを使用して複数のフラグメントを渡す
URLの複数のフラグメントをHTTPメソッドVIの単一の文字列入力端子に割り当てるカスタムブラウザURLを作成することができます。これは、カスタムブラウザURLを使用してファイルパスやその他の階層値を渡す際に便利です。
たとえば、/:x/*yは、URLマッピングに付加する際にxおよびyのラベルが付いた制御器に対して入力パラメータを作成します。その後、カスタマブラウズURLに、URLマッピングに追加した入力パラメータ/:x/*yに対応する/test/C/directoryなどの値を付与することができます。この例では、xはtest、そしてyはC/directoryに割り当てられています。複数のフラグメントが含まれる入力パラメータは、カスタムブラウザURLの最後で発生する必要があります。