java - 有没有办法让sparkjava拥有类似于dropwizard的restful java API?

标签 java rest spark-java

我的团队正在考虑使用 Sparkjava 来实现 RESTful Web 服务,但我对反序列化请求的选项并不满意。

选项似乎是:

  1. 使用其默认的反序列化,它仅提供嵌套的映射结构,这违背了使用 Java 等面向对象语言的目的

  2. 将每个路径定义包装在一堆样板中,以便反序列化/序列化请求和响应对象并调用处理程序方法。

我写了一些东西来减少样板文件的数量,所以你可以写这样的东西:

    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/

相关文章:

rest - 如何嗅探单个主机上进程之间的 http 流量?

java - 如何使用 Hibernate\Spring Data 将 json 转换为 java 对象数据并保存到数据库中?

http - Spark-java redirect - 浏览器不重定向

java - 修改 JTabbedPan 的滚动按钮

java - 重写 Java 枚举中的泛型方法

rest - Grails REST API在响应列表中隐藏 “class”

java - 使用spark从请求中提取参数数据

java - 如何将路径映射到静态 HTML 文件?

java - 如何让 Java 的 hasNextInt() 停止等待整数而不输入字符?

java - 错误消息二进制 XML 文件行 #0 : Error inflating class