0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[ODC]Consume REST APIのBase URLを実行時に変更する

Posted at

OutSystems 11の頃にConsume REST APIのカスタマイズを試してみるでみた方法で、Consume REST APIの通信にカスタマイズを加えられる。
ここでは、その中でもBase URLの書き換えについて見ていく。

環境情報

ODC Studio(Version 1.4.11)

実行時にBase URLを書き換える方法

Consume REST APIのOn Before Requestを使う。作成するには、Consume REST APIのOn Before Request右のドロップダウンリストを展開し、「New OnBeforeRequest」を選択する。
image.png

OnBeforeRequest Actionでは、Output ParameterのCustomizedRequestを編集することで、対応するHTTPS通信内容の書き換えを行える。

デフォルトでは、CustomizedRequestにRequestをAssignしてある。後続処理で、CustomizedRequestを書き換えればよい。

書き換えるのは主に以下のAttribute。

  • Base URL: 「https://<ホスト名>/<App名>/rest/<REST API名>」が入っている
  • URLPath: 「/<REST API Method>」

サンプル実装

ホスト名部分を書き換えるなら、OnBeforeRequestの実装を以下のようにする。
Ifの部分でクエリストリングの特定パラメータをチェックし、特定の値のときだけBase URLを書き換える流れ。
image.png

ホスト名書き換えには、標準APIのHTTP/Http_RequestDomainを利用している。第1引数で指定した変換対象URLのホスト部分を第2引数(ここでは私のブログのホスト)で置き換えたものを返す。
なお、ポート番号を含むURLの書き換えにはこのActionは使えず、自分で変換ロジックを書かないといけない点に注意。

動作確認

ホスト名書き換えのリクエストを行ったあとで、TracesでConsume REST APIのHTTPリクエストを確認した。以下のように元のリクエストのホスト部分を書き換えたURLにアクセスしている(適当なホストに書き換えているので、該当パスがなくHTTP Statusは404)。
image.png

用途

例えば、接続先のREST APIが同質のものが複数あり、入力条件やSettingに応じて接続先を切り替えたいときに使える。

なお、接続先の数が固定的であれば、この方法よりは、アーキテクチャパターンのTransparency Patternを使ったほうが良いだろう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?