You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/02/08 18:27:42 UTC
[jira] [Commented] (CAMEL-10809) Introduce configurator SPI for
rest support in camel-core
[ https://issues.apache.org/jira/browse/CAMEL-10809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858352#comment-15858352 ]
ASF GitHub Bot commented on CAMEL-10809:
----------------------------------------
GitHub user zregvart opened a pull request:
https://github.com/apache/camel/pull/1454
CAMEL-10809 Introduce configurator SPI for rest support in camel-core
This removes the `SwaggerRestProducerFactory` and moves the
responsibility of configuring rest clients to a new SPI
(`RestEndpointConfigurer`).
The rest endpoint URI has been changed to allow for syntax like:
rest:<component>[:componentSpecific]
Or in case of Swagger:
rest:swagger:getPetById?apiDoc=petstore.json
The SPI is discovered in the `META-INF/services/org/apache/camel/rest`
properties file with the prefix `configurer.` so any other components
wishing to configure rest endpoints via this configurer SPI should add
`rest` file with `configurer.class` property.
I would like feedback on the following issues:
- instead of `META-INF/.../rest` use different properties file?
- design of the RestEndpointConfigurer SPI interface (for instance: is
it sufficient so that it can be used to plug in headers, or
authentication callbacks for rest)
- integration with service discovery ({{service:...}})?
- properties missing from Swagger specification (notably host, and
port) -- current idea is that that should be provided from
`RestConfiguration`
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/zregvart/camel CAMEL-10809
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/camel/pull/1454.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1454
----
commit 59515f67706e588c2a86f2ba180be62c3264eb3a
Author: Zoran Regvart <zo...@regvart.com>
Date: 2017-02-08T18:25:44Z
CAMEL-10809 Introduce configurator SPI for rest...
... support in camel-core
This removes the `SwaggerRestProducerFactory` and moves the
responsibility of configuring rest clients to a new SPI
(`RestEndpointConfigurer`).
The rest endpoint URI has been changed to allow for syntax like:
rest:<component>[:componentSpecific]
Or in case of Swagger:
rest:swagger:getPetById?apiDoc=petstore.json
The SPI is discovered in the `META-INF/services/org/apache/camel/rest`
properties file with the prefix `configurer.` so any other components
wishing to configure rest endpoints via this configurer SPI should add
`rest` file with `configurer.class` property.
I would like feedback on the following issues:
- instead of `META-INF/.../rest` use different properties file?
- design of the RestEndpointConfigurer SPI interface (for instance: is
it sufficient so that it can be used to plug in headers, or
authentication callbacks for rest)
- integration with service discovery ({{service:...}})?
- properties missing from Swagger specification (notably host, and
port) -- current idea is that that should be provided from
`RestConfiguration`
----
> Introduce configurator SPI for rest support in camel-core
> ---------------------------------------------------------
>
> Key: CAMEL-10809
> URL: https://issues.apache.org/jira/browse/CAMEL-10809
> Project: Camel
> Issue Type: New Feature
> Components: camel-core, camel-swagger
> Affects Versions: 2.19.0
> Reporter: Zoran Regvart
> Assignee: Zoran Regvart
> Priority: Minor
>
> Camel core includes, albeit unpromoted feature implemented in CAMEL-10164 that allows the creation of producers from api specifications. One such integration was done in Swagger component, so you can create producers using the specified {{apiDoc}} parameter.
> I would like to change this a bit, and introduce a {{RestEndpointConfigurer}} that would allow you to customize the endpoint, so a step before the producer customization/creation takes place.
> This would allow for two things:
> - separation of concerns (configuring endpoint, creating producers)
> - possible extension to consumers (create specification first rest consumers)
> I would also like to propose the new rest endpoint URI syntax in addition to the existing one, in the form of:
> {{rest:<component>\[:componentSpecific\]}}
> Or in case of Swagger, something like:
> {{rest:swagger:operationId}}
> For example, complete endpoint uri for getting a pet out of petstore (Swagger example) would be:
> {{rest:swagger:getPetById?apiDoc=petstore.json}}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)