マルチアプリケーションWebサービス
このチュートリアルでは、Netuno用のマルチアプリケーションWebサービスを作成します。これは、Netunoのベースディレクトリに配置され、appsフォルダ内の任意のアプリケーションから利用できるJavaのWebサービスを作成することを意味します。
以前のチュートリアルに従って作成する例は、簡単な算術演算を実行するサンプルサービスであるcalcサービスです。
まず、プロジェクトのフォルダ構造を作成する必要があります。この例では、プロジェクトがCalcというフォルダ内に作成されるものとします。次に、パッケージ名(この例ではorg.netuno.addon.calc)を反映したフォルダ構造を作成する必要があります。したがって、フォルダ構造は次のようになります:
Calc/src/main/java/org/netuno/addon/calc/web/
この構造内に、カスタムWebサービスを定義するCalcWebというJavaクラスを作成します:
Calc/src/main/java/org/netuno/addon/calc/web/CalcWeb.java
クラス内で定義されるパッケージは次のようになります:
package org.netuno.addon.calc.web;
クラスがカスタムのマルチアプリケーションWebサービスを定義するには、org.netuno.tritao.Webクラスを継承する必要があります:
package org.netuno.addon.calc.web;
import org.netuno.tritao.Web;
public class CalcWeb extends Web {
// ...
}
サービスのURLを定義するには、次のようにします:
package org.netuno.addon.calc.web;
import org.netuno.proteu.Path;
import org.netuno.tritao.Web;
@Path("/addon/calc/Calc")
public class CalcWeb extends Web {
// ...
}
サービスが動作するためにオーバーライドする必要があるメソッドはrunです:
package org.netuno.addon.calc.web;
import org.netuno.proteu.Path;
import org.netuno.proteu.ProteuException;
import org.netuno.tritao.Web;
import java.io.IOException;
@Path("/addon/calc/Calc")
public class CalcWeb extends Web {
@Override
public void run() throws IOException, ProteuException {
// ...
}
}
では、Netunoのいくつかのリソースを使って、runメソッドを定義しましょう。このメソッドは、plus(加算)とminus(減算)のどちらの操作を使用するかを定義するパラメータopと、オペランドとなるパラメータxおよびy(加算の場合は被加数と加数、減算の場合はそれぞれ被減数と減数)を受け取ります。
次に、選択された操作に基づいて、サービスは結果を計算し、JSON形式でユーザーに返します:
package org.netuno.addon.calc.web;
import org.netuno.proteu.Path;
import org.netuno.proteu.ProteuException;
import org.netuno.tritao.Web;
import org.netuno.tritao.resource.Out;
import org.netuno.tritao.resource.Req;
import org.netuno.tritao.resource.Val;
import java.io.IOException;
@Path("/addon/calc/Calc")
public class CalcWeb extends Web {
@Override
public void run() throws IOException, ProteuException {
Req req = resource(Req.class);
Out out = resource(Out.class);
Val val = resource(Val.class);
String op = req.getString("op", "plus");
double x = req.getDouble("x", 0);
double y = req.getDouble("y", 0);
double result = 0;
if (op.equalsIgnoreCase("minus")) {
result = x - y;
} else {
result = x + y;
}
out.json(val.map().set("result", result));
}
}
あとはクラスをコンパイルし、CalcWeb.classファイルが次のフォルダにあることを確認するだけです:
netuno/core/web/WEB-INF/classes/org/netuno/addon/calc/web/
またはJARファイルを生成し、それが次のフォルダにあることを確認します:
netuno/lib/
任意のアプリケーションでNetunoサーバーを起動します:
./netuno server app=demo
このサービスを呼び出すには、URLの末尾に.netunoを追加する必要があります:
http://localhost:9000/addon/calc/Calc.netuno
たとえば、次のURLを呼び出すと:
http://localhost:9000/addon/calc/Calc.netuno?op=minus&x=5&y=2
次の応答が返ります:
{"result":3}
プロジェクトの完全なファイルはこのリンクで確認できます。
次のチュートリアルでは、Javaを使用してNetunoのリソースを作成する方法を学びます。