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?

More than 3 years have passed since last update.

OutSystems環境からHTTP通信を行う方法

Last updated at Posted at 2022-04-09

OutSystemsでHTTPリクエストを投げる主な方法を挙げてみる。
以下で示すサンプル実装で利用するメソッドはGETで統一。

環境

Personal Environment(Version 11.14.0 (Build 33133))
Service Studio(Version 11.14.12)
ardoHTTP(Version 1.2.5)

サンプル実装で使うURL

OutSystemsのExpose REST APIで以下のものを用意した。
image.png

Input Parameterとして、2つのInteger型(No1とNo2)を取り、以下の構造のOutput Parameterを返す。

  • DateTime型
  • Integaer型2つ

このサンプルURLにHTTPリクエストを行い、結果を取得する方法を以下にまとめる。

GetRequest_Submit Action (HTTPRequestHandlerモジュール)

組み込みのAPIであるHTTPRequestHandlerモジュールにある、GetRequest_SubmitというActionでGETリクエストを行える。
HTTPRequestHandler
image.png

特徴

製品に付属のAPIであるHTTPRequestHandlerの機能なので、新しいモジュールのインストールや開発が不要。

ただし、ヘッダを操作する機能が無い(HTTPRequestHandlerにはHeaderを操作するAPIもあるが、それはGetRequest_Submitでリクエストを行う際のヘッダではなく、OutSystemsから返すレスポンスヘッダを操作する機能)。

また、操作できるレスポンスのデータは、レスポンスボディに限られる。

Input Parameter

Argumentsは文字列編集で作ってもいいけれども、同じモジュールのGetRequest_AddArgument Actionを使って組み立てることもできる。
「No1=123&No2=234」を組み立てる場合の例は以下の通り。
image.png

Output Parameter

  • TextContent: レスポンスボディのテキスト表現(例:{"ResultDateTime":"2022-04-09T07:44:45Z","ResultNo1":133,"ResultNo2":244})
  • BinaryContent: レスポンスボディのバイナリ表現
  • BinaryContentType: Content-Type (例:application/json; charset=utf-8)

環境ごとにURLを変更する

Site Propertyでアクセスする先のホストを保持することで、Service Center上でアクセスする先のURLを変更できる。

Consume REST API

外部URLをREST APIとして処理する方法。
OutSystems標準機能のConsume REST APIを使って行う方法。
設定方法は、1つまたは複数のREST APIメソッドを利用するを参照。

環境ごとにURLを変更する

OutSystemsのREST APIは、Service Center上でアクセスする先のURLを変更できる。
手順は、実行時に利用するREST APIを設定するを参照。

通信ログ

Consumre REST APIを使うといいのは、通信ログを記録する機能も提供されていること。
これも、Service Center上でログレベルを変更する。ログレベルを上げて、Service CenterのIntegrationsログから通信内容を確認できるようになる(データサイズの問題があるため常時有効にすることは勧められていない)。

変更箇所は、URLと同じ場所で、Logging Levelという項目。これをFullに変更する。
image.png

Forgeコンポーネント(ardoHTTP)

Forgeコンポーネントにも、HTTPを操作するコンポーネントがいくつかある。
その中でも、ardoHTTPがTrustedで使いやすいので、使い方を確認してみる。

GETリクエストを送るのは、HTTPGet Action。
image.png

Input Parameter

Output Parameter

  • Status: HTTPレスポンスのステータスコードのテキスト表現(例:OK)
  • Status_Code: HTTPレスポンスのステータスコード(例:200)
  • Response: HTTPレスポンスボディ
  • Response_Headers: レスポンスヘッダ。NameとValueで構成されるStructureのList

Extension (C#)

コストはかかるが、代わりに最も細かいコントロールが効く方法。
他の方法で実現できない要求があるときにこの方法を取る。

ardoHTTPでもやっている、.NETの通信API(HttpWebRequest等)を使って、C#のExtensionとして作成する。

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?