我需要制作一个API,通过它我可以返回json或xml的数据格式(应客户要求)。
伙计,我知道如何实现此目标,因为当我使用@Produces批注时,它可以针对特定格式进行修复,但是我需要根据要求返回。
答案 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
您可以在这里找到更详细的说明:
答案 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/plain
和text/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";
}