gpt4 book ai didi

java - ReSTLet:如何通过设置自定义 MediaType 检索 DTO?

转载 作者:行者123 更新时间:2023-11-30 11:13:11 27 4
gpt4 key购买 nike

如何为具有自定义 MediaType 的实体发送 GET 请求?

例如,我想检索 MyUserDTO 并将 MediaType 设置为 application/user+yml

现在我有两个独立的 Action 。我可以检索实体:

resource.get(MyUserDTO.class);

并且可以检索字符串:

resource.get(new MediaType("application", "user+yml");

但是如何组合它们呢?或者可能有一些技巧可以配置 ReSTLet 来教他如何使用自定义 MediaType。

最佳答案

事实上,您的方法是正确的,但您没有使用 MediaType 类的正确构造函数(new MediaType(name, description))。

要使您的代码正常工作,您需要将其更改为:

resource.get(new MediaType("application/user+yml"));

在服务器端,你会得到这个:

@Get
public Representation getSomething() {
System.out.println(">> media types = " +
getRequest().getClientInfo().getAcceptedMediaTypes());
// Display this: media types = [application/user+yml:1.0]
(...)
}

您可以通过在注释 Get 中添加一个值来利用 ReSTLet 的扩展支持。在您的情况下,您需要添加如下所述的自定义扩展:

public class MyApplication extends Application {
public MyApplication() {
getMetadataService().addExtension(
"myextension", new MediaType("application/user+yml"));
(...)
}

@Override
public Restlet createInboundRoot() {
(...)
}
}

现在您可以在您的服务器资源中使用扩展:

@Get("myextension")
public Representation getSomething() {
(...)
}

此方法将与预期的媒体类型一起使用 application/user+yml

希望对你有帮助,蒂埃里

关于java - ReSTLet:如何通过设置自定义 MediaType 检索 DTO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26514414/

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