在Java中提供RESTful JSON API的惯用方法是什么?您是否使用JAX-WS和XML注释(@XmlElement等)?如何将带注释的对象序列化为JSON(使用Jackson或类似的库)?如何将域对象与发送给API的对象分开?
我了解Java,我希望您指出有关这些主题的良好资源和最佳实践。
谢谢!
答案 0 :(得分:3)
我已经愉快地使用了Jersey / JAX-RS,但我建议你 Spring MVC 3 ,不仅是对于其余的api支持,还有其他有趣的东西,如IoC或bean可能会变成很有用。
这里有一个链接,可以参考:http://blog.springsource.org/2009/03/08/rest-in-spring-3-mvc/
是的,我用Jackson和Spring作为解析器。 :)一些代码(基本上用你的说法标记你的bean,使用@XmlRootElement并使用@Path来标记API)
<强> JAX-RS 强>
豆:
@XmlRootElement
public class Response {
private String result;
private String message;
//getter and setter
}
API:
@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
}
}
<强>弹簧强>
API:
@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
}
}
答案 1 :(得分:2)
我只需使用Play来为我节省大量已经完成的工作。 该链接适用于Play 1.2,当前版本为2.1时,它也应该适合。
答案 2 :(得分:2)