Hi Malintha,

Builder mediator approach is adding lot of overhead to the configuration as
we have to add it for all the APIs in ESB which handles json.
Handling malformed json is a special case. For this special API which
handles malformed json, let's engage an API handler. At the handler in the
response path we can change the content-type.

On Saturday, March 5, 2016, Malintha Amarasinghe <[email protected]> wrote:

> Hi Isuru,
>
> Thanks for looking in to this.
>
> 1. We have an API and lets say it points to a backend which sometimes give
> invalid payloads with application/json content type.
> 2. We have added a content aware mediator along the mediation flow. (Ex:
> the API is response caching enabled)
> 3. If the backend gives an invalid payload the cache mediator will fail
> when it tries to build the message.
>
> If we had set the PlainTextBuilder/PlainTextFormatter for application/json
> mediatype in axis2.xml, we can overcome the above issue. But the problem
> is, that applies globally to all the APIs / Services etc in ESB. If we
> could set the PlainTextBuilder/PlainTextFormatter for application/json
> content type only to the API we have the problem with the backend while
> keeping default JsonBuilder/JsonFormatter, it would be a better solution
> IMO as our solution would not affect other APIs/Services.
>
> Thanks,
> Malintha
>
>
>
>
>
> On Sat, Mar 5, 2016 at 10:26 AM, Isuru Udana <[email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:
>
>> Hi Malintha,
>>
>> Can you please explain the use case you are trying to implement using
>> builder mediator.
>>
>>
>> On Saturday, March 5, 2016, Malintha Amarasinghe <[email protected]
>> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:
>>
>>> Hi,
>>>
>>> I was trying a sample for Builder Mediator [1] to override the default
>>> message formatter/builder and use PlainTextBuilder/PlainTextFormatter for
>>> application/json content type. As per the documentation [1] we should be
>>> enable BinaryRealyBuilder/ExpandingMessageFormatter for at least one
>>> content type in axis2.xml.
>>>
>>> 1. I tried enabling a different content-type for
>>> BinaryRealyBuilder/ExpandingMessageFormatter and kept the defaults for
>>> application/json type and then tried to override it using the builder
>>> mediator. But then the Builder mediator does not work as expected and it
>>> uses default JsonBuilder/JsonBuilder to build the message.
>>>
>>> 2. If I enable BinaryRealyBuilder/ExpandingMessageFormatter for
>>> application/json in axis2.xml, Builder mediator works as expected.
>>>
>>> Am I doing anything wrong when I am trying the first option? Or is (2)
>>> the correct behaviour and we should
>>> set BinaryRealyBuilder/ExpandingMessageFormatter for the same content type
>>> we are trying to override?
>>>
>>> Kindly appreciate your help on this.
>>>
>>> Thanks,
>>> Malintha
>>>
>>> [1] https://docs.wso2.com/display/ESB490/Builder+Mediator
>>>
>>> --
>>> Malintha Amarasinghe
>>> Software Engineer
>>> *WSO2, Inc. - lean | enterprise | middleware*
>>> http://wso2.com/
>>>
>>> Mobile : +94 712383306
>>>
>>
>>
>> --
>> Sent from Mobile
>>
>
>
>
> --
> Malintha Amarasinghe
> Software Engineer
> *WSO2, Inc. - lean | enterprise | middleware*
> http://wso2.com/
>
> Mobile : +94 712383306
>


-- 
Sent from Mobile
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to