Hi Frank,

Thanks for the clarification. I have created [1] to track the issue.

Thank you.
Malintha

[1] https://wso2.org/jira/browse/APIMANAGER-4295

On Sat, Nov 28, 2015 at 6:57 PM, Frank Leymann <[email protected]> wrote:

> Hi Malintha,
>
> using 202 Accepted without returning a Content-Location header that the
> client can poll is no real solution. This is because the client needs a URL
> to poll for the actual status whenever the client wants.  If this is to
> much to implement for the next release, we should note that issue and
> implement it for the release after the next.
>
>
> Best regards,
> Frank
>
> 2015-11-27 17:20 GMT+01:00 Malintha Amarasinghe <[email protected]>:
>
>> Hi All,
>>
>> Thanks a lot for all the suggestions.
>>
>> Hi Frank,
>>
>> According to your suggestion, is it OK to change the response type 202
>> Accepted, but keeping the response as it is?. We might be able to check if
>> the status is ON_HOLD and change the response code accordingly to 202
>> Accepted. If the status is UNBLOCKED, we can set the status code to 201
>> Created. Would this solution be OK for the moment till we implement this
>> properly?
>>
>> Thank you,
>> Malintha
>>
>> On Fri, Nov 27, 2015 at 3:11 PM, Frank Leymann <[email protected]> wrote:
>>
>>> +1 on REST APIs for BPS.
>>>
>>> I'll be in Colombo for WSO2Conn Asia in February.  I know it's a long
>>> time until than, but I suggest to have a joint design session on that
>>> subject - let me know if we should pursue this...
>>>
>>>
>>> Best regards,
>>> Frank
>>>
>>> 2015-11-27 6:31 GMT+01:00 Sanjeewa Malalgoda <[email protected]>:
>>>
>>>>
>>>>
>>>> On Thu, Nov 26, 2015 at 11:28 PM, Joseph Fonseka <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi All
>>>>>
>>>>> Did some background check on possibility of having a task resources.
>>>>>
>>>>> Nandika informed us about the REST service support in BPS. As of now
>>>>> BPEL implementation in BPS only deals with SOAP services and BPMN has a
>>>>> REST API. So this will give us few complications.
>>>>>
>>>>> 1. IMO task resource should be provided from BPS which we can point to
>>>>> from our REST API.
>>>>> 2. Even though BPMN has a REST service currently our workflows works
>>>>> with BPEL which require us to do a migration to BPMN if we want to use the
>>>>> REST API.
>>>>> 3. Given the time I do not think switching to BPMN is possible ( Even
>>>>> if we decides that is the correct thing to do ) and we need to think about
>>>>> existing customers.
>>>>> 4. Or implement REST support to BPEL ( again hard to do with the time
>>>>> line )
>>>>>
>>>>> That leads us to following options.
>>>>> 1. Implement REST API to fetch task resources in API manager.
>>>>> 2. Send the workflow related data in a resource it self ( Or we can
>>>>> send it in a header ).
>>>>> 3. Postpone the workflow integration with REST API to next release. (
>>>>> We will be still supporting workflows but REST API will not send workflow
>>>>> related data )
>>>>>
>>>> Yes i also agree with you Jo. The reason is we have very little time to
>>>> complete this task and it will not allow us to spend enough time on this.
>>>> And By the time we plan next release we will have some better solution
>>>> from BPS side.
>>>> As we discussed we may wrap BPEL admin services with REST API. But it
>>>> will not added value to both products.
>>>> Next release we need to come to conclusion about BPMN. If that is
>>>> possible then we can use same rest API.
>>>>
>>>> Thanks,
>>>> sanjeewa.
>>>>
>>>>
>>>>>
>>>>> I favor 3rd option since that will give us enough time to properly
>>>>> evaluate the options and come up with a good design.
>>>>>
>>>>> WDYT?
>>>>>
>>>>> Thanks
>>>>> Jo
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Nov 26, 2015 at 7:54 PM, Frank Leymann <[email protected]> wrote:
>>>>>
>>>>>> Dear all,
>>>>>>
>>>>>> why do we want to express by returning "ON_HOLD"?  I assume (correct
>>>>>> me if I am wrong) we want to say that the resource has not yet been 
>>>>>> created
>>>>>> because the workflow is still running: it depends on the result of the
>>>>>> workflow whether finally the subscription will be made or not.
>>>>>>
>>>>>> If this is the case, we must not return a "201 Created" because the
>>>>>> resource is not created. But we have to return "201 Accepted" with a task
>>>>>> resource in the body of the response; also, a Content-Location header has
>>>>>> to be returned that contains the URL of the task resource; this URL will 
>>>>>> be
>>>>>> used by the client to check changes in the status of the task (i.e. the
>>>>>> workflow).
>>>>>>
>>>>>> If the long running request (the workflow) completed successfully, a
>>>>>> GET on the URL of the task resource will return with "303 See Other" and 
>>>>>> a
>>>>>> Location header field containing the URL of the created resource (i.e. 
>>>>>> the
>>>>>> subscription).
>>>>>>
>>>>>> It the long running request completes UNsuccessfull, a GET on the URL
>>>>>> of the task resource will return a "200 OK" BUT the task resource (i.e. 
>>>>>> the
>>>>>> information about the status of the workflow) in the body will contain 
>>>>>> the
>>>>>> information that the request failed together with other information we 
>>>>>> deem
>>>>>> appropriate.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Best regards,
>>>>>> Frank
>>>>>>
>>>>>> 2015-11-24 14:21 GMT+01:00 Nuwan Dias <[email protected]>:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Nov 24, 2015 at 6:25 PM, Malintha Amarasinghe <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hi All,
>>>>>>>>
>>>>>>>> I configured the subscription creation workflow and tested it with
>>>>>>>> the current implementation of the REST API.
>>>>>>>>
>>>>>>>> When we add a subscription in normal scenario we get the following
>>>>>>>> response.
>>>>>>>>
>>>>>>>> *Request*:
>>>>>>>>
>>>>>>>> POST http://127.0.0.1:9764/api/am/store/v1//subscriptions HTTP/1.1
>>>>>>>>
>>>>>>>> {
>>>>>>>>       "tier": "Silver",
>>>>>>>>       "apiId": "2f4a020b-2a0d-4a47-b385-a22a93577082",
>>>>>>>>       "applicationId": "69041195-1e81-48f5-8892-2ab053b0501c",
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>> *Response:*
>>>>>>>>
>>>>>>>> HTTP/1.1 *201* Created
>>>>>>>>
>>>>>>>> Location: http://127.0.0.1:9764/api/am/store/v1/subscriptions/
>>>>>>>> 63ab53d3-0cb7-46df-8ce9-cd84f2882b27
>>>>>>>> Content-Type: application/json
>>>>>>>>
>>>>>>>>
>>>>>>>> {
>>>>>>>>       "tier": "Silver",
>>>>>>>>       "subscriptionId": "63ab53d3-0cb7-46df-8ce9-cd84f2882b27",
>>>>>>>>       "apiId": "2f4a020b-2a0d-4a47-b385-a22a93577082",
>>>>>>>>       "applicationId": "69041195-1e81-48f5-8892-2ab053b0501c",
>>>>>>>>       *"status": "UNBLOCKED"*
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>> When we have a subscription creation workflow enabled, we receive a
>>>>>>>> response like follow.
>>>>>>>>
>>>>>>>> HTTP/1.1 *201* Created
>>>>>>>>
>>>>>>>> Location: http://127.0.0.1:9764/api/am/store/v1/subscriptions/
>>>>>>>> def79733-e55e-464f-9630-c1ae595344f2
>>>>>>>> Content-Type: application/json
>>>>>>>>
>>>>>>>> {
>>>>>>>>    "subscriptionId": "def79733-e55e-464f-9630-c1ae595344f2",
>>>>>>>>    "apiId": "admin-pubApi-1.0",
>>>>>>>>    "tier": "Silver",
>>>>>>>>    "applicationId": "69041195-1e81-48f5-8892-2ab053b0501c",
>>>>>>>>    *"status": "ON_HOLD"*
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>> Here we can see that the status is ON_HOLD. In this case we can
>>>>>>>> also see some more information that are coming from APIM underline
>>>>>>>> implementation, which are follows:
>>>>>>>>
>>>>>>>>    - redirectUrl : "http://google.lk";
>>>>>>>>    - displayUrl : "http://wso2.com";
>>>>>>>>    - workflowRefId : "0b94b11a-2736-48a0-b43e-c7cc35d8516d"
>>>>>>>>    - CallbackUrl : http://google.lk
>>>>>>>>
>>>>>>>>
>>>>>>>> Do we need to include this info in the response object? If so what
>>>>>>>> would be the best approach?
>>>>>>>>
>>>>>>>
>>>>>>> What if we add this info to the response payload under a section
>>>>>>> called something like "workflowInformation" ?
>>>>>>>
>>>>>>>>
>>>>>>>> Few ways that are possible include:
>>>>>>>>
>>>>>>>>    - Add those additional information into the response object
>>>>>>>>    - Add this redirect URL as HTTP 302 redirection as the Location
>>>>>>>>    header
>>>>>>>>
>>>>>>>> Please share your thoughts.
>>>>>>>>
>>>>>>>> Thank you,
>>>>>>>> Malintha
>>>>>>>>
>>>>>>>> --
>>>>>>>> Malintha Amarasinghe
>>>>>>>> Software Engineer
>>>>>>>> *WSO2, Inc. - lean | enterprise | middleware*
>>>>>>>> http://wso2.com/
>>>>>>>>
>>>>>>>> Mobile : +94 712383306
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Nuwan Dias
>>>>>>>
>>>>>>> Technical Lead - WSO2, Inc. http://wso2.com
>>>>>>> email : [email protected]
>>>>>>> Phone : +94 777 775 729
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> --
>>>>> *Joseph Fonseka*
>>>>> WSO2 Inc.; http://wso2.com
>>>>> lean.enterprise.middleware
>>>>>
>>>>> mobile: +94 772 512 430
>>>>> skype: jpfonseka
>>>>>
>>>>> * <http://lk.linkedin.com/in/rumeshbandara>*
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> *Sanjeewa Malalgoda*
>>>> WSO2 Inc.
>>>> Mobile : +94713068779
>>>>
>>>> <http://sanjeewamalalgoda.blogspot.com/>blog
>>>> :http://sanjeewamalalgoda.blogspot.com/
>>>> <http://sanjeewamalalgoda.blogspot.com/>
>>>>
>>>>
>>>>
>>>
>>
>>
>> --
>> Malintha Amarasinghe
>> Software Engineer
>> *WSO2, Inc. - lean | enterprise | middleware*
>> http://wso2.com/
>>
>> Mobile : +94 712383306
>>
>
>


-- 
Malintha Amarasinghe
Software Engineer
*WSO2, Inc. - lean | enterprise | middleware*
http://wso2.com/

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

Reply via email to