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]REST APIからHTMLを返す

Posted at

OutSystemsでBasic認証をかけたURLから任意のHTMLを返す方法がないかな、と考えてみました。
Expose REST APIの機能であれば、プロパティの設定だけでBasic認証をかけられるので、REST APIを作って、希望のHTMLを返せればOKですね。

Content-Type

実験してみたところ、Expose REST APIのHTTPレスポンスに出力されるContent-Typeの値は、デフォルトでは「text/plain; charset=utf-8」(出力変数の型がTextのとき)か「application/json; charset=utf-8」(複雑な型のとき)のようです。

データとしてHTMLをかえすなら、text/plainでも構いませんが、「text/html; charset=utf-8」にしたければ、HTTPRequestHandler ExtensionのAddHeader Actionで上書きできました。
image.png

方法1:Text出力変数にHTMLを直接出力する

Text型の出力変数を1つだけ持つREST API Methodを用意し、その変数に直接HTMLを書き込む方法です。
image.png

方法2:On Response CallbackでJSONをHTMLに変換する

REST API Methodから、HTMLの材料となるデータを出力変数に書き込みます。
複雑な出力変数はJSON形式になるので、これを出力の直前に処理を差し挟めるOn Response Callbackで変換(JSONから元のデータに戻し、ロジックでHTMLを整形)する方法です。
当初構想段階ではこちらの方法が良いかと思ったのですが、実装の手間が方法1とあまり変わらないですね。On Responseは同じREST APIにぶら下がる全API Methodに対して後処理として動作するので、複数のAPI Methodが同じデータ形式を返す場合は方法2を取る機会もあるかもしれません。

なお、On Response自体については、Expose REST APIのOnResponseを試すを参照。

image.png

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?