Question
OrchestratorのWebブラウザ操作と同じ挙動をOrchestrator APIで実現したいです。
Orchestrator APIの確認や各種パラメーターの調査方法を教えてください。
Answer
対応するOrchestrator APIの確認手順
一般的なOrchestrator APIについては公式ガイドをご参照ください。
WebブラウザでOrchestratorを操作した時のネットワークログを確認することで、具体的なOrchestrator APIを確認できます。
- WebブラウザでOrchestratorにアクセスし、開発者ツールを開きます。(F12キー押下で開けます)
- 開発者ツール内のネットワークタブを選択すると、開いているWebページのネットワークログが表示されます。
- Orchestrator APIで実行したい内容を、Orchestrator画面のGUIを操作して実行します。
- ネットワークタブ内に、いくつかのログが出力されます。任意のネットワークログをクリックするとその詳細(Headers, Payload, Responseなど)が表示されます。ヘッダーのリクエストURLおよびリクエストメソッドなどを手がかりに、対応するOrchestrator APIを探します。
Swaggerでの検証手順
Orchestrator APIの挙動を確認したり、パラメーターやJSONペイロードを変更した際の挙動検証にあたってSwaggerというツールを利用できます。
- Webブラウザから、Orchestrator APIを実行するユーザーとしてOrchestratorにログインします。
※ログインユーザーに権限がないAPIは、Swaggerから実行できません。 - 同じWebブラウザの新しいタブで、
https://OrchestratorのURL/swagger
にアクセスします。
クラウド版Orchestratorをご利用の場合には、https://cloud.uipath.com/組織名/テナント名/orchestrator_/swagger
のURLにアクセスします。 - Swaggerページ内の右上にある、鍵アイコンの「Authorize」ボタンをクリックします。ポップアップが表示されますので、既定値のままポップアップ内の下部にある「Authorize」を再度クリックしてからポップアップを閉じます。
- 実行したいAPIを探します。たとえば「Releases」セクション内の「Get /odata/Releases」を開きます。このAPIは、各フォルダーに登録されたプロセス情報を取得します。
- 「Get /odata/Releases」内右上の「Try it out」をクリックします。
- パラメーター「X-UiPath-OrganizationUnitId」には、フォルダーIDを指定することができます。フォルダーIDは、Orchestrator内でそのフォルダーにアクセスした時のURL内の「fid」の値です。例えばURLが
https://orchestrator.uipath.test/?tid=2&fid=3&index=0&size=10&state=xxx
の時、フォルダーIDは「3」です。 - 「Get /odata/Releases」内の「Execute」をクリックすると、Orchestrator APIが実行されます。API実行結果がすぐ下の「Responses」に表示されます。
PUTやPOSTメソッドの場合には、Webブラウザ開発者ツールのネットワークログ > ペイロードタブにJSONペイロードが表示されます。ペイロードタブで「view source」をクリックすると、JSON形式の文字列として表示されます。
Swaggerのbody パラメーターにJSON形式のペイロードをコピー&ペーストして指定します。
JSON文字列は整形されていなくても問題ありませんが、整形すると見やすくなります。
Visual Studio Codeなどのテキストエディターや、オンライン上のJSON整形ツールで整形できます。
Orchestrator APIの実装方法
Orchestrator APIを実行するには色々な方法がありますが、以下はその一例です。
ワークフローを利用する
-
『Orchestrator への HTTP 要求』アクティビティ
Orchestrator APIに特化したアクティビティです。ワークフローを実行するRobotと同じ権限でAPIを実行します。 -
『HTTP 要求』アクティビティ
Orchestratorに限らず、任意のHTTPリクエストを実行できます。
このアクティビティを利用するには、UiPath Studio上部の「パッケージを管理」よりUiPath.WebAPI.Activitiesパッケージを追加する必要があります。
また誰の権限でAPIを実行するか、Orchestratorへの認証プロセスを組み込む必要もあります。
ワークフローを利用しない
PowerShellなど、HTTPリクエストを送信できる任意のサードパーティー製品を使うこともできます。
ご参考まで、PowerShellを利用するサンプルを含むナレッジベースをご紹介いたします。