我的团队正在考虑使用 Sparkjava 来实现 RESTful Web 服务,但我对反序列化请求的选项并不满意。
选项似乎是:
使用其默认的反序列化,它仅提供嵌套的映射结构,这违背了使用 Java 等面向对象语言的目的
将每个路径定义包装在一堆样板中,以便反序列化/序列化请求和响应对象并调用处理程序方法。
我写了一些东西来减少样板文件的数量,所以你可以写这样的东西:
public void Routes() {
post("/happy/birthday", (request, response) -> {
return callJson(getHandler("birthday"), request, response);
});
}
这还不错,但它需要反射来查找生日方法,因此没有编译时验证生日处理程序方法是否存在。但感觉应该有更好的方法。
最佳答案
可能会产生误解,但 Spark Java 就是 Java,因此您可以使用任何 Java 序列化库。我已经将 Gson 与 Spark 一起使用。
Gson gson = new Gson();
post("/employee", (request, response) -> {
ValidateNewEmployeeCommand command = new ValidateNewEmployeeCommand();
Employee emp = gson.fromJson(request.body(), Employee.class);
return command.validateEmployee(emp);
}, gson::toJson);
关于java - 有没有办法让sparkjava拥有类似于dropwizard的restful java API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46799104/