我尝试使用ApacheCamelRESTDSL创建一个简单的RESTAPI,该API在被调用时应该只返回一个String。
但是,虽然下面的代码曾经可以正常工作,但API似乎已经发生了变化
rest().get("/hello-world").produces(MediaType.APPLICATION_JSON_VALUE).route()
.setBody(constant("Welcome to apache camel test ")).endRest();
route()在Apache Camel 3.17.0中已不存在
我也试过
rest("/say")
.get("/hello")
.responseMessage(200, "Hello World");
但这会返回空字符串而不是“Hello World”
到目前为止,唯一有效的方法是创建一条额外的路径
rest("/say")
.get("/hello")
.to("direct:build-return-message");
from("direct:build-return-message")
.setBody(simple("Hello World"));
但这不可能是首选的方式。
现在如何使用最新的API设置响应正文?
2条答案
按热度按时间frebpwbc1#
虽然在Rest-DSL中不能再定义返回字符串的简单路由,但可以使用camels language component通过常量、简单语言或使用resources文件夹中的文件来实现类似的功能。
不幸的是,语言组件的例子非常少,因为它看起来像是一个处理一堆小事情的方便工具。
f4t66c6m2#
也许像这样的东西?