S2JSONIC
JSONICのJSON-RPCをS2対応にしてみたのだが、意外と笑える。
今の仕様では、HotDeploy用に自動登録されたServiceクラスは自動的にJSON-RPCとして公開されるようになっている。例えば、
public class EmployeeService { public List<Employee> getEmployeeList(Employee emp) { return jdbcManager.from(Employee.class) .eq("id", emp.id) .contains("name", emp.name) .getResultList(); } }
というようなサービスを書くとそれだけでWebから呼び出せる。
呼び出しは、次のようなJSONをemployee.jsonに向けてPOSTするだけ。
{ "method": "getEmployeeList", "params": [{id: 1, name: "かまやつ"}], "id": 245906030 }
paramsに指定したJSON objectは引数のEmployeeクラスに自動変換され、idプロパティとnameプロパティに値がセットされた状態でgetEmployeeListに渡される("getEmployeeList"は"GetEmployeeList"でも"get_employee_list"でも問題ないが、引数の数は一致させる必要がある)。
もちろん戻り値もJSONに自動的に変換されクライアントに返送されます。セキュリティ的にまずそうな気配も濃厚ですが、まぁお遊びということで。