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で上書きできました。
方法1:Text出力変数にHTMLを直接出力する
Text型の出力変数を1つだけ持つREST API Methodを用意し、その変数に直接HTMLを書き込む方法です。
方法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を試すを参照。