gpt4 book ai didi

java - @Produces 和@Consumes 的 Jersey (dropwizard)默认媒体类型

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:03:07 25 4
gpt4 key购买 nike

默认情况下,我们应用程序中的所有方法都将基于 JSON。我想避免向每个 Resource 类添加 @Produces 和 @Consumes(可能是可选的,不确定),如下所示。

@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class TestResource {

@GET
public TestClass test() {
return new TestClass();
}
}

如果我没有定义媒体类型,目前它使用application/octet-stream。我希望有一种方法可以通过 Jersey 的 ResourceConfig 或其他方式将其更改为其他内容。在源代码中四处查看但迷路了。

目前 dropwizard 使用 jersey 1.18,但很快就会更新到 2.0(希望 :))。因此,我们将不胜感激这两个版本的答案。

最佳答案

也许这可以通过 ContainerRequestFilter 来完成。您可以在那里修改 ACCEPT header 。如果您将其设置为仅 json,那么这会有所帮助。您是否尝试过将 REST 客户端中的 ACCEPT header 字段设置为仅 JSON?这有帮助吗?

或者你只是像这样用 json 构建你的响应:

@GET
@Path("get")
public Response getInTestResource()
{
return Response.status(Status.OK).type(MediaType.APPLICATION_JSON).entity("get is ok").build();
}

但有一个问题:如果您记录下此方法消耗或产生的内容,这是否真的过于繁琐?我认为注释不是太多的额外工作......

关于java - @Produces 和@Consumes 的 Jersey (dropwizard)默认媒体类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26116666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com