Как настроить описание и идентификатор маршрута rest ()? - PullRequest
0 голосов
/ 13 января 2019

Я настроил REST Camel с Spring Boot и включил привод / camelroutes, как в этом примере: https://github.com/apache/camel/blob/master/examples/camel-example-spring-boot/src/main/resources/application.properties

Теперь я могу получить описания своих маршрутов ... проблема в том, что они отображаются в виде route1, route2 и т. Д., И не предоставляют описания, которое затрудняет определение того, какой маршрут принадлежит какой-либо конечной точке REST, например,

{
    "id": "route2",
    "uptime": "3.172 seconds",
    "uptimeMillis": 3172,
    "properties": {
        "parent": "49889154",
        "rest": "true",
        "description": null,
        "id": "route2"
    },
    "status": "Started"
}

Вопрос в том, как предоставить пользовательское описание и идентификатор для маршрутов rest ()?

Мой маршрут прост:

      rest("/hello")
            .description("/hello GET endpoint")
            .consumes("application/json").produces("text/html")
            .get("/").description("Hello World example").outType(String.class)
            .to("direct:hello")

и я попытался добавить .description после .rest ("/ bla"), но это не действует в приводе / camelroutes

В идеале я хотел бы получить что-то вроде ниже:

 {
    "id": "route1",
    "description": "direct hello route returning simple string",
    "uptime": "3.173 seconds",
    "uptimeMillis": 3173,
    "properties": {
        "parent": "76af51d6",
        "rest": "false",
        "description": "direct hello route returning simple string",
        "id": "route1"
    },
    "status": "Started"
},

1 Ответ

0 голосов
/ 16 января 2019

Вам необходимо установить id и description в route контекст, а не в rest контекст.

Например, это определение:

rest("/hello")
        .consumes("application/json").produces("text/html")
        .get("/").outType(String.class)
        .route().id("sayHi").description("This endpoint says Hi")
        .to("direct:hello");

from("direct:hello")
        .routeId("hello")
        .setBody(constant("Hi"));

Генерирует этот выход привода:

[
  {
    "id": "hello",
    "uptime": "13.158 seconds",
    "uptimeMillis": 13158,
    "status": "Started"
  },
  {
    "id": "sayHi",
    "description": "This endpoint says Hi",
    "uptime": "13.145 seconds",
    "uptimeMillis": 13145,
    "status": "Started"
  }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...