在Java中创建Api

时间:2018-09-11 12:06:42

标签: java spring rest api

我需要制作一个API,通过它我可以返回json或xml的数据格式(应客户要求)。

伙计,我知道如何实现此目标,因为当我使用@Produces批注时,它可以针对特定格式进行修复,但是我需要根据要求返回。

3 个答案:

答案 0 :(得分:0)

如果可以使用Spring,请在DispatcherServlet.xml中配置ContentNegotiationManager,然后可以将响应类型用作url的参数。

例如:

http://localhost:8080/employee-management-system/viewEmployee/4?type=xml

http://localhost:8080/employee-management-system/viewEmployee/4?type=json

您可以在这里找到更详细的说明:

https://www.javainuse.com/spring/rest4

答案 1 :(得分:0)

我通常希望在这里看到两种方法,一种是@Produces ("application/json"),另一种是@Produces("application/xml")

@Path("/foobar")
public final class FooBar {
    @Produces("application/xml")
    public String xml () { ... }

    @Produces("application/json")
    public String json() { ... }
}

Oracle对@Produces annotation的描述中的示例包括一个与text/plaintext/html类似的示例。

  

这是一种实现方法,但是我不想编写2种方法。我想用一种方法来做。

另一种合理的方法是更接近金属

@Path("/foobar")
public final class FooBar {
    public Response foobar() (@Context HttpHeaders headers) { ... }
}

然后亲自检查标题以决定要做什么。参见Get HTTP header in JAX-RS

答案 2 :(得分:0)

您可以使用ResponseEntity对象指定响应内容类型,如下所示:

public interface PutExtraConstants {
    String USER_NAME = "USER_NAME";
}