Re: [Dev] Address endpoint and 404 code

2018-03-21 Thread Himasha Guruge
Hi Thomas,

Yes given your scenarios  handling each separately based on a flag/flags
(with switch mediator) would be the possible solution. You could store
these properties(such as documents) in registry itself.

Thanks,
Himasha

On Wed, Mar 21, 2018 at 9:08 PM, Thomas LEGRAND <
thomas.legr...@versusmind.eu> wrote:

> Hello,
>
> "And because the second step can be invoked in many contexts" can be like
> :
>
> * context 1 : retrieval of documents. We have an API like
> /documents/customer/{id}.
>
> - First step, I retrieve the local documents from the {id}.
> - Then step 2, I want to find the equivalence of the {id} for the other
> source (we'll call this equivalence, {id2}). However, {id2} does not exist
> so my web service returns 404. BOOM, step 2 prime is trigger
> - step 2 prime, fault sequence. How can I send back the retrieved
> documents from the first step? I can use a property and in this sequence,
> retrieve the property via a PayloadFactory and just use the respond
> mediator.
>
> whereas step 3 should be:
> - retrieve the document from the other source and merge them with the
> local ones
>
> * context 2 : retrieval of customer information. We have an API like
> /customer/{id}
>
> - First step, I retrieve the local information from the {id}.
> - Then, step 2,  I want to find the equivalence of the {id} for the other
> source (we'll call this equivalence, {id2}). However, {id2} does not exist
> so my web service returns 404. BOOM, step 2 prime is trigger. Yep, because
> we use the same sequence as in the context 1 because we are lazy :)
> - step 2 prime, fault sequence. How can I send back the local information
> from the first step whereas this same fault sequence could potentially be
> used for the context 1? Use the same property?
>
> whereas step 3 should be:
> - retrieve the information from the other source and merge them with the
> local ones
>
> Because of those two contexts (or more), I can't just call the fault
> sequence to do the merge because the data types are different. Or maybe by
> using a flag with the switch mediator but I don't know if it is
> common/right practice to do so.
>
> Regards,
>
> Thomas
>
> 2018-03-21 15:41 GMT+01:00 Vinod Kavinda :
>
>> Hi Thomas,
>> How about including your third step in a separate sequence and invoking
>> it from the fault sequence when it is triggered?
>>
>> Thanks,
>> Vinod.
>>
>> On Wed, Mar 21, 2018 at 8:05 PM, Himasha Guruge 
>> wrote:
>>
>>> Hi Thomas,
>>> Could you elaborate on following.
>>> " And because the second step can be invoked in many contexts, I can't
>>> just customize the fault sequence to invoke the third step."
>>>
>>> How about using switch mediator in fault sequence (for error_code
>>> property) and based on that, invoke the third step?
>>>
>>> Thanks,
>>> Himasha
>>>
>>> On Tue, Mar 20, 2018 at 8:43 PM, Thomas LEGRAND <
>>> thomas.legr...@versusmind.eu> wrote:
>>>
 Hello,

 I have a situation where I want to retrieve data from two sources. So,
 the client sends a request to a specific resource of an ESB API and the
 sequence follows like this :

 - retrieve the data from the local source
 - retrieve a corresponding id for the other source
 - if the correspondence exists, retrieve the data from the other source

 In the second step, I call a little REST web service which returns a
 404 when the correspondence does not exists. The call is implemented by
 using a Address mediator, like this:

 
 
 
 
 

 Of course, as you can see, the "getCorrespondenceUrl" is built just
 before thanks to registry parameters. My problem is the Address endpoint
 takes the 404 code as an error and just stop the sequence:

 TID: [-1234] [] [2018-03-20 15:48:45,114]  INFO {
 org.apache.axis2.transport.http.HTTPSender} -  Unable to sendViaGet to
 url[http://blablabla/find/my/correspondence] {
 org.apache.axis2.transport.http.HTTPSender}
 org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found

 So, I tried to use a fault sequence by setting the onError attribute:

 >>> onError="getCorrespondenceFaultSequence" trace="disable" xmlns="
 http://ws.apache.org/ns/synapse;>
 

 However, once this sequence is triggered, there is no turning back to
 the third step. And because the second step can be invoked in many
 contexts, I can't just customize the fault sequence to invoke the third
 step.

 So, is there a way to tell the mediator that 404 is no big deal?

 Regards,

 Thomas





 ___
 Dev mailing list
 Dev@wso2.org
 http://wso2.org/cgi-bin/mailman/listinfo/dev


>>>
>>>
>>> --
>>> Himasha Guruge
>>> Senior Software Engineer
>>> WS*O2* *Inc.*
>>> Mobile: +94 777459299 <+94%2077%20745%209299>
>>> 

Re: [Dev] Address endpoint and 404 code

2018-03-21 Thread Thomas LEGRAND
Hello,

"And because the second step can be invoked in many contexts" can be like :

* context 1 : retrieval of documents. We have an API like
/documents/customer/{id}.

- First step, I retrieve the local documents from the {id}.
- Then step 2, I want to find the equivalence of the {id} for the other
source (we'll call this equivalence, {id2}). However, {id2} does not exist
so my web service returns 404. BOOM, step 2 prime is trigger
- step 2 prime, fault sequence. How can I send back the retrieved documents
from the first step? I can use a property and in this sequence, retrieve
the property via a PayloadFactory and just use the respond mediator.

whereas step 3 should be:
- retrieve the document from the other source and merge them with the local
ones

* context 2 : retrieval of customer information. We have an API like
/customer/{id}

- First step, I retrieve the local information from the {id}.
- Then, step 2,  I want to find the equivalence of the {id} for the other
source (we'll call this equivalence, {id2}). However, {id2} does not exist
so my web service returns 404. BOOM, step 2 prime is trigger. Yep, because
we use the same sequence as in the context 1 because we are lazy :)
- step 2 prime, fault sequence. How can I send back the local information
from the first step whereas this same fault sequence could potentially be
used for the context 1? Use the same property?

whereas step 3 should be:
- retrieve the information from the other source and merge them with the
local ones

Because of those two contexts (or more), I can't just call the fault
sequence to do the merge because the data types are different. Or maybe by
using a flag with the switch mediator but I don't know if it is
common/right practice to do so.

Regards,

Thomas

2018-03-21 15:41 GMT+01:00 Vinod Kavinda :

> Hi Thomas,
> How about including your third step in a separate sequence and invoking it
> from the fault sequence when it is triggered?
>
> Thanks,
> Vinod.
>
> On Wed, Mar 21, 2018 at 8:05 PM, Himasha Guruge  wrote:
>
>> Hi Thomas,
>> Could you elaborate on following.
>> " And because the second step can be invoked in many contexts, I can't
>> just customize the fault sequence to invoke the third step."
>>
>> How about using switch mediator in fault sequence (for error_code
>> property) and based on that, invoke the third step?
>>
>> Thanks,
>> Himasha
>>
>> On Tue, Mar 20, 2018 at 8:43 PM, Thomas LEGRAND <
>> thomas.legr...@versusmind.eu> wrote:
>>
>>> Hello,
>>>
>>> I have a situation where I want to retrieve data from two sources. So,
>>> the client sends a request to a specific resource of an ESB API and the
>>> sequence follows like this :
>>>
>>> - retrieve the data from the local source
>>> - retrieve a corresponding id for the other source
>>> - if the correspondence exists, retrieve the data from the other source
>>>
>>> In the second step, I call a little REST web service which returns a 404
>>> when the correspondence does not exists. The call is implemented by using a
>>> Address mediator, like this:
>>>
>>> 
>>> 
>>> 
>>> 
>>> 
>>>
>>> Of course, as you can see, the "getCorrespondenceUrl" is built just
>>> before thanks to registry parameters. My problem is the Address endpoint
>>> takes the 404 code as an error and just stop the sequence:
>>>
>>> TID: [-1234] [] [2018-03-20 15:48:45,114]  INFO {
>>> org.apache.axis2.transport.http.HTTPSender} -  Unable to sendViaGet to
>>> url[http://blablabla/find/my/correspondence] {
>>> org.apache.axis2.transport.http.HTTPSender}
>>> org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found
>>>
>>> So, I tried to use a fault sequence by setting the onError attribute:
>>>
>>> >> onError="getCorrespondenceFaultSequence" trace="disable" xmlns="
>>> http://ws.apache.org/ns/synapse;>
>>> 
>>>
>>> However, once this sequence is triggered, there is no turning back to
>>> the third step. And because the second step can be invoked in many
>>> contexts, I can't just customize the fault sequence to invoke the third
>>> step.
>>>
>>> So, is there a way to tell the mediator that 404 is no big deal?
>>>
>>> Regards,
>>>
>>> Thomas
>>>
>>>
>>>
>>>
>>>
>>> ___
>>> Dev mailing list
>>> Dev@wso2.org
>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>
>>>
>>
>>
>> --
>> Himasha Guruge
>> Senior Software Engineer
>> WS*O2* *Inc.*
>> Mobile: +94 777459299 <+94%2077%20745%209299>
>> himas...@wso2.com
>>
>> ___
>> Dev mailing list
>> Dev@wso2.org
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
> Vinod Kavinda
> Senior Software Engineer
> *WSO2 Inc. - lean . enterprise . middleware .*
> Mobile : +94 (0) 712 415544
> Blog : http://soatechflicks.blogspot.com/
> [image: http://wso2.com/signature]
> 
>
>
___
Dev mailing list
Dev@wso2.org

Re: [Dev] Address endpoint and 404 code

2018-03-21 Thread Vinod Kavinda
Hi Thomas,
How about including your third step in a separate sequence and invoking it
from the fault sequence when it is triggered?

Thanks,
Vinod.

On Wed, Mar 21, 2018 at 8:05 PM, Himasha Guruge  wrote:

> Hi Thomas,
> Could you elaborate on following.
> " And because the second step can be invoked in many contexts, I can't
> just customize the fault sequence to invoke the third step."
>
> How about using switch mediator in fault sequence (for error_code
> property) and based on that, invoke the third step?
>
> Thanks,
> Himasha
>
> On Tue, Mar 20, 2018 at 8:43 PM, Thomas LEGRAND <
> thomas.legr...@versusmind.eu> wrote:
>
>> Hello,
>>
>> I have a situation where I want to retrieve data from two sources. So,
>> the client sends a request to a specific resource of an ESB API and the
>> sequence follows like this :
>>
>> - retrieve the data from the local source
>> - retrieve a corresponding id for the other source
>> - if the correspondence exists, retrieve the data from the other source
>>
>> In the second step, I call a little REST web service which returns a 404
>> when the correspondence does not exists. The call is implemented by using a
>> Address mediator, like this:
>>
>> 
>> 
>> 
>> 
>> 
>>
>> Of course, as you can see, the "getCorrespondenceUrl" is built just
>> before thanks to registry parameters. My problem is the Address endpoint
>> takes the 404 code as an error and just stop the sequence:
>>
>> TID: [-1234] [] [2018-03-20 15:48:45,114]  INFO {
>> org.apache.axis2.transport.http.HTTPSender} -  Unable to sendViaGet to
>> url[http://blablabla/find/my/correspondence] {
>> org.apache.axis2.transport.http.HTTPSender}
>> org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found
>>
>> So, I tried to use a fault sequence by setting the onError attribute:
>>
>> > onError="getCorrespondenceFaultSequence"
>> trace="disable" xmlns="http://ws.apache.org/ns/synapse;>
>> 
>>
>> However, once this sequence is triggered, there is no turning back to the
>> third step. And because the second step can be invoked in many contexts, I
>> can't just customize the fault sequence to invoke the third step.
>>
>> So, is there a way to tell the mediator that 404 is no big deal?
>>
>> Regards,
>>
>> Thomas
>>
>>
>>
>>
>>
>> ___
>> Dev mailing list
>> Dev@wso2.org
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
> Himasha Guruge
> Senior Software Engineer
> WS*O2* *Inc.*
> Mobile: +94 777459299 <+94%2077%20745%209299>
> himas...@wso2.com
>
> ___
> Dev mailing list
> Dev@wso2.org
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
Vinod Kavinda
Senior Software Engineer
*WSO2 Inc. - lean . enterprise . middleware .*
Mobile : +94 (0) 712 415544
Blog : http://soatechflicks.blogspot.com/
[image: http://wso2.com/signature]

___
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev


Re: [Dev] Address endpoint and 404 code

2018-03-21 Thread Himasha Guruge
Hi Thomas,
Could you elaborate on following.
" And because the second step can be invoked in many contexts, I can't just
customize the fault sequence to invoke the third step."

How about using switch mediator in fault sequence (for error_code property)
and based on that, invoke the third step?

Thanks,
Himasha

On Tue, Mar 20, 2018 at 8:43 PM, Thomas LEGRAND <
thomas.legr...@versusmind.eu> wrote:

> Hello,
>
> I have a situation where I want to retrieve data from two sources. So, the
> client sends a request to a specific resource of an ESB API and the
> sequence follows like this :
>
> - retrieve the data from the local source
> - retrieve a corresponding id for the other source
> - if the correspondence exists, retrieve the data from the other source
>
> In the second step, I call a little REST web service which returns a 404
> when the correspondence does not exists. The call is implemented by using a
> Address mediator, like this:
>
> 
> 
> 
> 
> 
>
> Of course, as you can see, the "getCorrespondenceUrl" is built just before
> thanks to registry parameters. My problem is the Address endpoint takes the
> 404 code as an error and just stop the sequence:
>
> TID: [-1234] [] [2018-03-20 15:48:45,114]  INFO {
> org.apache.axis2.transport.http.HTTPSender} -  Unable to sendViaGet to
> url[http://blablabla/find/my/correspondence] {
> org.apache.axis2.transport.http.HTTPSender}
> org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found
>
> So, I tried to use a fault sequence by setting the onError attribute:
>
>  onError="getCorrespondenceFaultSequence"
> trace="disable" xmlns="http://ws.apache.org/ns/synapse;>
> 
>
> However, once this sequence is triggered, there is no turning back to the
> third step. And because the second step can be invoked in many contexts, I
> can't just customize the fault sequence to invoke the third step.
>
> So, is there a way to tell the mediator that 404 is no big deal?
>
> Regards,
>
> Thomas
>
>
>
>
>
> ___
> Dev mailing list
> Dev@wso2.org
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
Himasha Guruge
Senior Software Engineer
WS*O2* *Inc.*
Mobile: +94 777459299
himas...@wso2.com
___
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev


[Dev] Address endpoint and 404 code

2018-03-20 Thread Thomas LEGRAND
Hello,

I have a situation where I want to retrieve data from two sources. So, the
client sends a request to a specific resource of an ESB API and the
sequence follows like this :

- retrieve the data from the local source
- retrieve a corresponding id for the other source
- if the correspondence exists, retrieve the data from the other source

In the second step, I call a little REST web service which returns a 404
when the correspondence does not exists. The call is implemented by using a
Address mediator, like this:







Of course, as you can see, the "getCorrespondenceUrl" is built just before
thanks to registry parameters. My problem is the Address endpoint takes the
404 code as an error and just stop the sequence:

TID: [-1234] [] [2018-03-20 15:48:45,114]  INFO
{org.apache.axis2.transport.http.HTTPSender}
-  Unable to sendViaGet to url[http://blablabla/find/my/correspondence]
{org.apache.axis2.transport.http.HTTPSender}
org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found

So, I tried to use a fault sequence by setting the onError attribute:

http://ws.apache.org/
ns/synapse">


However, once this sequence is triggered, there is no turning back to the
third step. And because the second step can be invoked in many contexts, I
can't just customize the fault sequence to invoke the third step.

So, is there a way to tell the mediator that 404 is no big deal?

Regards,

Thomas
___
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev