5

在 Java 中提供 RESTful JSON API 的惯用方式是什么?您是否使用 JAX-WS 和 XML 注释(@XmlElement 等)?您如何将带注释的对象序列化为 JSON(使用 Jackson 或类似库)?您如何将域对象与发送到 API 的对象分开?

我了解 Java,我希望您指出有关这些主题的良好资源和最佳实践。

谢谢!

4

3 回答 3

3

我已经愉快地使用了 Jersey/JAX-RS,但我建议您使用Spring MVC 3,不仅是为了支持其余的 api,而且对于其他有趣的东西,如 IoC 或可能会变得有用的 bean。

这里有一个链接可以参考:http: //blog.springsource.org/2009/03/08/rest-in-spring-3-mvc/

顺便说一句,我使用 Jackson 和 Spring 作为解析器。:)


一些代码(基本上用@XmlRootElement 标记你的bean,并使用@Path 标记API)

JAX-RS

豆:

@XmlRootElement
public class Response {

  private String result;
  private String message;

  //getter and setter
}

接口:

@Path("rest/user")
@Produces(MediaType.APPLICATION_JSON)
public class UserService {

  @POST
  @Path("/login")
  public Response login(
        @FormParam("username") String username,
        @FormParam("password") String password
  ) {
      // Your logic here
  }
}

春天

接口:

@Controller
@RequestMapping("/user")
public class UserService {

  @RequestMapping(method = RequestMethod.POST, value="/login", headers="Accept=application/json")
  public @ResponseBody Response login(
        @RequestParam(value = "user", defaultValue = "") String email,
        @RequestParam(value = "password", defaultValue = "") String password,
        HttpServletRequest request
        ) {
    // Your logic here
  }
}
于 2013-06-13T11:01:15.597 回答
2

我会简单地使用Play来为我节省很多已经完成的工作。该链接适用于 Play 1.2,虽然当前版本是 2.1,但它也应该适合该版本。

于 2013-06-13T10:05:27.457 回答
2

我在 Jersey 和 Jackson 方面有很好的经验,甚至在 Android、JBoss 或 Tomcat 方面也是如此。看:

http://www.mkyong.com/webservices/jax-rs/restful-java-client-with-jersey-client/http://www.mkyong.com/webservices/jax-rs/json-example-with -泽西杰克逊/

或者

Android REST 客户端和 Tomcat REST Web 服务

于 2013-06-13T10:11:32.993 回答