Hi Juan,

camel automatically detect everything after '?' as parameters for
camel. So, my Component's createEndpoint method receives these inputs.
This is exactly how components work. After all, it's an enpoint URI. All parts and parameters are there for configuring this enpoint.

You need to find out which parameters do not belong to your component and add them to the *remaining* URL.

-Ralf

On 6/17/20 6:41 AM, Juan Segarra wrote:
Hi.

I tried adding a prefix to the camel parameters as you suggested:

oaipmh:
https://revista.uisrael.edu.ec/index.php?page=oai&camel-param1=X&camel-param2=Y.
..

But, camel automatically detect everything after '?' as parameters for
camel. So, my Component's createEndpoint method receives these inputs.

*uri*: oaipmh:
https://revista.uisrael.edu.ec/index.php?page=oai&camel-param1=X&camel-param2=Y.
..
*remaining*: https://revista.uisrael.edu.ec/index.php
*parameters*: {page:oai, camel-param1:X, camel-param2:Y, ...}

(I use 'remaining' as the URL of the OAI-PMH server).

I am not sure if I need an additional configuration to force that only
camel-* parameters go to 'parameters' attribute.
BTW, I am using the DefaultComponent base class, .

Regards,
Juan

El lun., 15 jun. 2020 a las 3:04, Ralf Claussnitzer (<
[email protected]>) escribió:

Hi Juan,

the components parameters are different from the actual generated URL.
You could prefix parameters that are needed for consumer configuration
with the component name. But this is actually no needed, since the valid
OAI-PMH parameters are known. All other URI parameters must therefore be
either component configuration or URL specific extra parameters.

On the HTTP vs HTTPS problem: Why not simply allow a http:// or https://
prefix for the target URL? The default could later be that the component
automatically figures out which protocol to use. But for starters the
URL could look like this:

oaipmh:
https://revista.uisrael.edu.ec/index.php?page=oai&camel-param1=X&camel-param2=Y.
..

Regards,
Ralf

On 6/14/20 12:29 AM, Juan Segarra wrote:
Hi all.

I have been importing the code from the camel-oaipmh project [1] of
Carlos
Badenes to my project [2] and testing it against some servers that I
know.
The URI of the endpoints of the component looks like this.
oaipmh://oa.upm.es/perl/oai2?camel-param1=mock&camel-param2=foo.....
And it assumes that the servers run only over HTTP, because the "http://
"
prefix is added to the server domain before executing the requests.

During my tests I noticed that some servers run over HTTPS and my mentors
suggested to me that I could add a 'ssl=true' param in the URI in order
to
add support for HTTPS within the component. However, I found out that
some
servers need params in the query string in order to work.

For example:
https://revista.uisrael.edu.ec/index.php?page=oai

In this case my URI would look like this:
oaipmh://

revista.uisrael.edu.ec/index.php?page=oai&ssl=true&camel-param1=X&camel-param2=Y.
..
..

I was wondering how I should deal with this. How could camel divide
sections of the query string that belongs to the oai server request and
the
parameters of the camel component.

I would really appreciate your suggestions and ideas.

[1] https://github.com/cbadenes/camel-oaipmh
[2]
https://github.com/juanksega/camel/tree/master/components/camel-oaipmh

Best,
Juan

Reply via email to