4.5. Quarkus 関数の戻り値
関数は、許可された型のリストから任意の型のインスタンスを返すことができます。または、Uni<T>
型を返すこともできます。ここで、<T>
型パラメーターは、許可されている型の任意の型にすることができます。
Uni<T>
タイプは、返されるオブジェクトが受信したオブジェクトと同じ形式でシリアライズされるため、関数が非同期 API を呼び出す場合に便利です。以下に例を示します。
- 関数が HTTP 要求を受信すると、返されるオブジェクトが HTTP 応答のボディーに送信されます。
-
関数がバイナリーエンコーディングで
CloudEvent
オブジェクトを受信する場合に、返されるオブジェクトはバイナリーエンコードされたCloudEvent
オブジェクトの data プロパティーで送信されます。
以下の例は、購入リストを取得する関数を示しています。
コマンドの例
public class Functions { @Funq public List<Purchase> getPurchasesByName(String name) { // logic to retrieve purchases } }
- HTTP 要求経由でこの関数を呼び出すと、応答のボディーに購入された一覧が含まれる HTTP 応答が生成されます。
-
受信
CloudEvent
オブジェクト経由でこの関数を呼び出すと、data
プロパティーの購入リストが含まれるCloudEvent
応答が生成されます。
4.5.1. 使用可能なタイプ
関数の入力と出力は、void
、String
、または byte[]
型のいずれかです。さらに、プリミティブ型とそのラッパー (int
や Integer
など) にすることもできます。これらは、Javabean、マップ、リスト、配列、および特殊な CloudEvents<T>
タイプの複合オブジェクトにすることもできます。
マップ、リスト、配列、CloudEvents<T>
型の <T>
型パラメーター、および Javabeans の属性は、ここにリストされている型のみにすることができます。
例
public class Functions { public List<Integer> getIds(); public Purchase[] getPurchasesByName(String name); public String getNameById(int id); public Map<String,Integer> getNameIdMapping(); public void processImage(byte[] img); }