org.apache.camel.model.rest.RestDefinition.route()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(8.2k)|赞(0)|评价(0)|浏览(92)

本文整理了Java中org.apache.camel.model.rest.RestDefinition.route方法的一些代码示例,展示了RestDefinition.route的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RestDefinition.route方法的具体详情如下:
包路径:org.apache.camel.model.rest.RestDefinition
类名称:RestDefinition
方法名:route

RestDefinition.route介绍

暂无

代码示例

代码示例来源:origin: com.github.zed-platform/zed-camel

public void exposeAnnotatedBeans() {
  for (Map.Entry<String, Object> bean : findBeansWithRestOperations(routeBuilder.getContext().getRegistry()).entrySet()) {
    for (Method method : findRestOperations(bean.getValue().getClass())) {
      String uri = "/" + bean.getKey() + "/" + method.getName();
      boolean isGet = true;
      int parametersCount = method.getParameterCount();
      if (parametersCount > 0) {
        Class<?> lastParameterType = method.getParameterTypes()[parametersCount - 1];
        if (lastParameterType != String.class &&
            lastParameterType != Character.class && lastParameterType != char.class &&
            lastParameterType != Integer.class && lastParameterType != int.class &&
            lastParameterType != Long.class && lastParameterType != long.class &&
            lastParameterType != Float.class && lastParameterType != float.class &&
            lastParameterType != Double.class && lastParameterType != double.class) {
          isGet = false;
          parametersCount--;
        }
      }
      for (int i = 0; i < parametersCount; i++) {
        uri += "/{p" + i + "}";
      }
      routeBuilder.rest(uri).verb(isGet ? "GET" : "POST").route().process(restParametersBindingProcessor()).
          to("bean:" + bean.getKey() + "?method=" + method.getName() + "&multiParameterArray=true").
          choice().when(routeBuilder.header("CAMEL_REST_VOID_OPERATION").isNotNull()).setBody().constant("").endChoice();
    }
  }
}

代码示例来源:origin: org.openksavi.sponge/sponge-rest-api-server

protected <I extends SpongeRequest, O extends SpongeResponse> void createOperation(RestDefinition restDefinition, String operation,
    String operationDescription, Class<I> requestClass, String requestDescription, Class<O> responseClass,
    String responseDescription, BiFunction<I, Exchange, O> operationHandler) {
  restDefinition.post(operation).description(operationDescription).type(requestClass).outType(responseClass).param().name("body")
      .type(body).description(requestDescription).endParam().responseMessage().code(200).message(responseDescription)
      .endResponseMessage().route().id("sponge-" + operation).process(exchange -> {
        String requestBody = exchange.getIn().getBody(String.class);
        if (logger.isDebugEnabled()) {
          logger.debug("REST API {} request: {}", operation, RestApiUtils.obfuscatePassword(requestBody));
        }
        try {
          setupResponse(operation, exchange,
              operationHandler.apply(getObjectMapper().readValue(requestBody, requestClass), exchange));
        } catch (Throwable processingException) {
          logger.info("REST API error", processingException);
          try {
            setupResponse(operation, exchange, apiService.createGenericErrorResponse(processingException, exchange));
          } catch (Throwable e) {
            logger.error("REST API send error response failure", e);
            throw e;
          }
        }
      }).endRest();
}

代码示例来源:origin: redhat-developer-demos/istio-tutorial

.route().routeId("root")
.route().routeId("misbehave")
.process(exchange -> {
  this.misbehave = true;
.route().routeId("behave")
.process(exchange -> {
  this.misbehave = false;

代码示例来源:origin: camelinaction/camelinaction2

@Override
  public void configure() throws Exception {

    // configure rest-dsl
    restConfiguration()
      // to use spark-rest component and run on port 9090
      .component("spark-rest").port(9090)
      // enable api-docs
      .apiContextPath("api-doc")
      // enable CORS on rest services so they can be called from swagger UI
      .enableCORS(true)
      // enable CORS in the api-doc as well so the swagger UI can view it
      .apiProperty("cors", "true");

    // pong rest service
    rest("/ping").get().route().transform().constant("{ \"reply\": \"pong\" }");

  }
}

代码示例来源:origin: camelinaction/camelinaction2

@Override
public void configure() throws Exception {
  // use the restlet component on port 8080 as the REST server
  // no need for binding to json/jaxb as the rest services are using plain text
  restConfiguration().component("restlet").port(8080);
  rest("/rest").consumes("application/text").produces("application/text")
    // ping rest service
    .get("ping")
      .route().routeId("ping")
      .transform(constant("PONG\n"))
    .endRest()
    // controlbus to start/stop the route
    .get("route/{action}")
      // use dynamic-to so the action is provided from the url
      .toD("controlbus:route?routeId=ping&action=${header.action}");
}

代码示例来源:origin: org.openksavi.sponge/sponge-rest-api

.param().name("body").type(body).description("Get Sponge version request").endParam()
.responseMessage().code(200).message("The Sponge version response").endResponseMessage()
.route().id("version")
  .setBody(exchange -> apiService.getVersion(exchange.getIn().getBody(RestGetVersionRequest.class), exchange))
.endRest()
.param().name("body").type(body).description("Login request").endParam()
.responseMessage().code(200).message("The login response").endResponseMessage()
.route().id("login")
  .setBody(exchange -> apiService.login(exchange.getIn().getBody(RestLoginRequest.class), exchange))
.endRest()
.param().name("body").type(body).description("Logout request").endParam()
.responseMessage().code(200).message("The logout response").endResponseMessage()
.route().id("logout")
  .setBody(exchange -> apiService.logout(exchange.getIn().getBody(RestLogoutRequest.class), exchange))
.endRest()
.param().name("body").type(body).description("Get knowledge bases request").endParam()
.responseMessage().code(200).message("The get knowledge bases response").endResponseMessage()
.route().id("knowledgeBases")
  .setBody(exchange -> apiService.getKnowledgeBases(exchange.getIn().getBody(RestGetKnowledgeBasesRequest.class), exchange))
.endRest()
.param().name("body").type(body).description("Get actions request").endParam()
.responseMessage().code(200).message("The get actions response").endResponseMessage()
.route().id("actions")
  .setBody(exchange -> apiService.getActions(exchange.getIn().getBody(RestGetActionsRequest.class), exchange))
.endRest()

代码示例来源:origin: redhat-developer-demos/istio-tutorial

@Override
public void configure() throws Exception {
  restConfiguration()
      .component("servlet")
      .enableCORS(true)
      .contextPath("/")
      .bindingMode(RestBindingMode.auto);
  rest("/").get().produces("text/plain")
      .route().routeId("root")
      .to("http4:recommendation:8080/?httpClient.connectTimeout=1000&bridgeEndpoint=true&copyHeaders=true&connectionClose=true")
      .routeId("recommendation")
      .onException(HttpOperationFailedException.class)
        .handled(true)
        .process(this::handleHttpFailure)
        .setHeader(Exchange.HTTP_RESPONSE_CODE, constant(503))
        .end()
      .onException(Exception.class)
        .handled(true)
        .transform(simpleF(RESPONSE_STRING_FORMAT, exceptionMessage()) )
        .setHeader(Exchange.HTTP_RESPONSE_CODE, constant(503))
        .end()
      .transform(simpleF(RESPONSE_STRING_FORMAT, "${body}"))
      .endRest();
}

代码示例来源:origin: redhat-developer-demos/istio-tutorial

@Override
public void configure() throws Exception {
  restConfiguration()
      .component("servlet")
      .enableCORS(true)
      .contextPath("/")
      .bindingMode(RestBindingMode.auto);
  rest("/").get().consumes(MediaType.TEXT_PLAIN_VALUE)
      .route().routeId("root")
      .pipeline()
        .bean("CustomerCamelRoute", "addTracer")
        .to("http4:preference:8080/?httpClient.connectTimeout=1000&bridgeEndpoint=true&copyHeaders=true&connectionClose=true")
      .end()
      .convertBodyTo(String.class)
      .onException(HttpOperationFailedException.class)
        .handled(true)
        .process(this::handleHttpFailure)
        .setHeader(Exchange.HTTP_RESPONSE_CODE, constant(503))
      .end()
      .onException(Exception.class)
        .log(exceptionMessage().toString())
        .handled(true)
        .transform(simpleF(RESPONSE_STRING_FORMAT, exceptionMessage()))
        .setHeader(Exchange.HTTP_RESPONSE_CODE, constant(503))
      .end()
      .transform(simpleF(RESPONSE_STRING_FORMAT, "${body}"))
  .endRest();
}

相关文章