java - 在 Java 中提供 RESTful JSON API

标签 java json web-services api

在 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/

相关文章:

java - 如果一个方法必须只调用一次而再次调用该方法,则抛出哪个异常?

java - 无法访问类 com.sun.javafx.util.Utils(在模块 javafx.graphics 中)-JavaFX 和 Eclipse

ios - 如何将转义的 JSON 字符串转换为 NSString?

JSON Schema 比较两个属性为等长数组

javascript - angularjs - 语法错误 : Unexpected token when request return from server

java - 如果不返回值,为什么要使用 return 关键字?

java - 如何使用 SQL 查询结果作为 Java 中变量的值?

json - 将单元格 a1 中的 JSON 数据提取到 b1、c1、d1 等中。 - Excel

json - 使用 Apache Camel 将 REST 自定义转换为 SOAP 到 REST

c# - 为 Web 服务创建 Java stub 的库