在 Java 中提供 RESTful JSON API 的惯用方式是什么?您使用 JAX-WS 和 XML 注释(@XmlElement 等)吗?你如何将带注释的对象序列化为 JSON(使用 Jackson 或类似的库)?如何将域对象与发送到 API 的对象分开?
我了解 Java,我希望您能向我指出有关这些主题的良好资源和最佳实践。
谢谢!
最佳答案
我很高兴地使用了 Jersey/JAX-RS,但我建议您使用 Spring MVC 3,这不仅是为了其余的 api 支持,也是为了其他有趣的东西,例如 IoC 或 beans,它们可能会变成有用。
这里是引用链接:http://blog.springsource.org/2009/03/08/rest-in-spring-3-mvc/
顺便说一句,我使用 Jackson 和 Spring 作为解析器。 :)
一些代码(如您所说,基本上用@XmlRootElement 标记您的bean 并使用@Path 标记API)
JAX-RS
bean :
@XmlRootElement
public class Response {
private String result;
private String message;
//getter and setter
}
应用程序接口(interface):
@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
}
}
Spring
应用程序接口(interface):
@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
}
}
关于java - 在 Java 中提供 RESTful JSON API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17083844/