Hi,

i found a ugly solution:

        interceptSendToEndpoint("direct:*")
            .when(simple("${exchange.getFromRouteId} == null"))
            .log(" ---------------------------------------intercept to 
----------------------------------");

intercepts only the first direct to OperationId

______________________________________________________________
> Od: med...@volny.cz
> Komu: users@camel.apache.org
> Datum: 13.08.2024 11:33
> Předmět: Re: [QUESTION] Open API REST DSL with contract first OpenAPI
>
>HI,
>
>sorry for a stupid error. The interceptor should be 
>interceptSendToEndpoint("direct:*") and not 
>interceptSendToEndpoint("direct-*").
>
>But using that it intercept not only to on my current route but also all 
>to("direct:*") that is something i do not want. And adding some special 
>pattern into OpenAPI OperationID just to be able to filter it out wy a 
>wildcard pattern is a bit cumbersome.
>
>As there is no from in my route interceptFrom does not work.
>
>Jiri
>
>______________________________________________________________
>> Od: "Claus Ibsen" <claus.ib...@gmail.com>
>> Komu: users@camel.apache.org
>> Datum: 13.08.2024 11:04
>> Předmět: Re: [QUESTION] Open API REST DSL with contract first OpenAPI
>>
>>Hi
>>
>>Okay you can use a custom RestOpenapiProcessorStrategy (extend default) and
>>do your custom code in the process method.
>>But yeah we may want to make this easier in rest-dsl directly or something
>>like that. You are welcome to create a JIRA.
>>
>>On Tue, Aug 13, 2024 at 10:53 AM <med...@volny.cz> wrote:
>>
>>> Hello Claus,
>>>
>>> i have added both interceptFrom and interceptTo to my routeBuilder, but it
>>> has no effect. My code looks like following:
>>>
>>> @Component
>>> public class GopSenderRoute extends EndpointRouteBuilder {
>>>     @Override
>>>     public void configure() throws Exception {
>>>
>>>         interceptFrom().process(e -> {throw new
>>> RuntimeException("intercept from");});
>>>         interceptSendToEndpoint("direct-*").process(e -> {throw new
>>> RuntimeException("intercept to");});
>>>
>>>         restConfiguration()
>>>             .contextPath("/") // specified in OpenAPI
>>>             .apiContextPath("/api-doc/gop");
>>>
>>>         rest()
>>>             .openApi()
>>>             .specification("/openapi/gop/sender/camelGOP-openapi-v1.json")
>>>             .missingOperation("ignore");
>>>
>>>
>>>     }
>>> }
>>>
>>>
>>> ______________________________________________________________
>>> > Od: "Claus Ibsen" <claus.ib...@gmail.com>
>>> > Komu: users@camel.apache.org
>>> > Datum: 13.08.2024 08:55
>>> > Předmět: Re: [QUESTION] Open API REST DSL with contract first OpenAPI
>>> >
>>> >Hi
>>> >
>>> >You can take a look at interceptFrom or interceptSendTo
>>> >
>>> >However some kind of advanced configuration in rest-dsl to call a custom
>>> >processor is not supported.
>>> >It may be something we could consider.
>>> >
>>> >
>>> >
>>> >
>>> >On Tue, Aug 13, 2024 at 8:31 AM <med...@volny.cz> wrote:
>>> >
>>> >> Hello comunity,
>>> >>
>>> >> we have migrated out Camel Spring Boot Project to v 4.7 and started to
>>> use
>>> >> the new Documentation first approach as described here
>>> >> https://camel.apache.org/manual/rest-dsl-openapi.html. That helped us
>>> >> simplify out prooject quite a bit.
>>> >>
>>> >> My question is: Is it possible to inject some code (processor, bean,
>>> >> route) before the the exchange is routed to the direct endpoint? In
>>> >> particular I would like to perform authorization check and some basic
>>> >> header validation.
>>> >>
>>> >> I can do that by some shared processor or route called at the beginning
>>> of
>>> >> each direct route but having it centralized in the rest consumer would
>>> be
>>> >> lighter and cleaner.
>>> >>
>>> >> Best regards
>>> >>
>>> >> Jiri Medved
>>> >>
>>> >
>>> >
>>> >--
>>> >Claus Ibsen
>>> >-----------------
>>> >@davsclaus
>>> >Camel in Action 2: https://www.manning.com/ibsen2
>>> >
>>> >
>>>
>>
>>
>>-- 
>>Claus Ibsen
>>-----------------
>>@davsclaus
>>Camel in Action 2: https://www.manning.com/ibsen2
>>
>>
>
>

Reply via email to