Fn / OCI Functions 向けに アノテーションを使って HTTP リクエスト処理をすっきり書くフレームワークを作った話
Fn / OCI Functions で API を開発するとします。API は API Gateway を通じて公開する想定です。例えば一連の複数オブジェクトに対する CRUD 処理としましょう。API Gateway 経由の Rest API の実装は、一つのオブジェクトについて同じURLに対する POST/GET/PUT/DELETE のメソッドでアクセスさせることになるでしょう。ではこの時 Function の粒度はどう考えればいいでしょうか? POST/GET/PUT/DELETE 毎に Function を分けますか?、さすがにそれはしないか... では同じ URL はひとまとめにして(=対象オブジェクト毎に)、URLのパス単位で Function を分けるのではどうでしょうか?う~ん、それでも Function の数が多くなっちゃうかな...?
つまり、適当な粒度で API 群をまとめて1つの Function で処理する必要が出てくる訳です。ですが、そうすると Function にまとめられた全ての API の入り口は(現状の FDK の仕様では)指定したクラスの単一のメソッドになります。そのメソッドでリクエストを受け取り、HTTP メソッド/パス を確認して、個々の API 処理に分岐させることになります。この処理をコーディングするの、面倒ですよね、if文だらけ、毎回似たようで異なる分岐処理、もっとすっきりとコーディングしたいです。そんなときに役に立つのがこのフレームワーク「Fn Event Router」です。
このフレームワークを使うと、
@FnBean
public class HelloFunction {
@FnHttpEvent(method = "GET", path = ".*/hello", outputType = "text")
public String hello(String input) {
// ...
}
// ...
のように、個々の HTTP リクエスト毎にメソッドをマッピングすることができます。Functions の入出力をお助けするJava/Jsonバインディング機能やヘルパークラス等も提供しています。
お試しあれ!
Author And Source
この問題について(Fn / OCI Functions 向けに アノテーションを使って HTTP リクエスト処理をすっきり書くフレームワークを作った話), 我々は、より多くの情報をここで見つけました https://qiita.com/tkote/items/b90fc68ceee46aaa68dd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .