restlet 内容类型,使用 restlet 进行版本控制
restlet content type, versioning with restlet
我正在使用 restlet 和 camel 公开休息服务。
我一方面公开了休息服务,另一方面我重写了流程方法。
代码如下所示,
from("restlet:/service/serviceName/{serviceId}?restletMethod=PUT").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
//Implementation goes here.
}
}
我这里有两个问题。
- 我无法设置请求的内容类型
- 我做不到
实现内容类型的版本控制
我尝试了以下选项。
setHeader(Exchange.CONTENT_TYPE, simple("application/json"))
setHeader(Exchange.ACCEPT_CONTENT_TYPE, simple("application/json"))
问题依旧没有解决。还有其他选择吗?
所以你的路线是从。这意味着您向它发送了一个请求。
从 fiddler、chrome 或其他地方用你想要的 header 向它发送请求。
将日志记录添加到打印出包括 headers 在内的整个交换的路由。在这里您会找到 Content-Type,以及所有其他 HTTP header。
要访问它们,您需要像访问任何其他 header.
一样访问 Exchange 上的 header
我不明白你为什么要在那里设置 headers。
例如,在您的流程代码中,您可以这样做:
String contentType=(String) exchange.getIn().getHeader("Content-Type");
if (contentType.equals("application/json")) {
//do something
}
请注意,您需要验证 header 被称为 Content-Type 而不是 content-type 或类似的东西,因为 RESTLET 区分大小写。这就是为什么您需要添加日志记录以查看交易所 header 的名称。
我正在使用 restlet 和 camel 公开休息服务。
我一方面公开了休息服务,另一方面我重写了流程方法。 代码如下所示,
from("restlet:/service/serviceName/{serviceId}?restletMethod=PUT").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
//Implementation goes here.
}
}
我这里有两个问题。
- 我无法设置请求的内容类型
- 我做不到 实现内容类型的版本控制
我尝试了以下选项。
setHeader(Exchange.CONTENT_TYPE, simple("application/json"))
setHeader(Exchange.ACCEPT_CONTENT_TYPE, simple("application/json"))
问题依旧没有解决。还有其他选择吗?
所以你的路线是从。这意味着您向它发送了一个请求。
从 fiddler、chrome 或其他地方用你想要的 header 向它发送请求。
将日志记录添加到打印出包括 headers 在内的整个交换的路由。在这里您会找到 Content-Type,以及所有其他 HTTP header。
要访问它们,您需要像访问任何其他 header.
一样访问 Exchange 上的 header
我不明白你为什么要在那里设置 headers。
例如,在您的流程代码中,您可以这样做:
String contentType=(String) exchange.getIn().getHeader("Content-Type");
if (contentType.equals("application/json")) {
//do something
}
请注意,您需要验证 header 被称为 Content-Type 而不是 content-type 或类似的东西,因为 RESTLET 区分大小写。这就是为什么您需要添加日志记录以查看交易所 header 的名称。