Hi Sanjeewa,

What Kaveesha is suggesting in her earlier reply is to get rid of the
import-export APIs completely. Since we now have a comprehensive
Publisher/Store REST API, we can write a client side tool which uses these
APIs to export (GET) and import (POST/PUT) artifacts (APIs).

Therefore I don't think we need any further enhancements to the publisher
or store REST APIs. And we can get rid of the current import-export REST
API too.

Thanks,
NuwanD.

On Thu, Jul 21, 2016 at 11:31 AM, Sanjeewa Malalgoda <[email protected]>
wrote:

>
>
> On Wed, Jul 20, 2016 at 12:33 PM, Rasika Perera <[email protected]> wrote:
>
>> Hi Thilini,
>>
>> Api-import-export tool performs as a separate RESTful API based *tool* which
>>> consumes API Manager publisher REST API.
>>> Therefore IMO it is not correct to add import-export as a resource to
>>> our publisher REST API.
>>
>> Yes, ​import-export is not a generic resource. This is kind of a special
>> case. My main concern is it should belongs to the *publisher*.
>> ​
>> Well, this is how I derived the api;
>>
>> 1. Import/Export is affected to the resources
>> https://apis.wso2.com/api/am/publisher/v0.9/apis/{apiId} and
>> https://apis.wso2.com/api/am/publisher/v0.9/apis/{apiId}/documents/{documentId}
>> . If we consider following api
>> https://10.100.7.40:9443/api-import-export-<version>/import-api. It does
>> not convey that import exports are belongs to the resource "apis".
>>
>> 2. Then it should be; https://10.100.7.40:9443/*apis*/
>> import-export-<version>/import-api
>>
>> 3. Do we need sub-resource import-api? no. We can derive those from PUT,
>> POST(import) and GET(export). Hence https://10.100.7.40:9443/*apis*/
>> import-export.
>>
>> 4. Can every user import-export APIs? no. Most of the time, publisher
>> does it. Hence final api; https://10.100.7.40:9443/*publisher*/*apis*
>> /import-export/.
>>
> I have different though on this. If we consider RMM for rest APIs then if
> we followed above then we will go back to level 0.
> So i believe something like this should work.
>
> https://10.100.7.40:9443/publisher/apis/import-export-apis/apis GET
> download all APIs for logged in user as archive
> https://10.100.7.40:9443/publisher/apis/import-export-apis/apis POST
> upload API list archive and import them to system
> https://10.100.7.40:9443/publisher/apis/import-export-apis/apis PUT
> upload API list archive and update existing APIs with new artifacts
>
> https://10.100.7.40:9443/publisher/apis/import-export-apis/api/{api-identifier}
> GET download API for logged in user as archive
> https://10.100.7.40:9443/publisher/apis/import-export-apis/api POST
> upload API list archive and import them to system
> https://10.100.7.40:9443/publisher/apis/import-export-apis/api PUT upload
> API list archive and update existing APIs with new artifacts
>
> WDYT?
>
> Thanks,
> sanjeewa.
>
>>
>> WDYT?
>>
>> Thanks,
>> Rasika
>>
>> On Wed, Jul 20, 2016 at 10:06 AM, Thilini Cooray <[email protected]>
>> wrote:
>>
>>> Hi Rasika,
>>>
>>> Api-import-export tool performs as a separate RESTful API based *tool*
>>> which consumes API Manager publisher REST API.
>>> Therefore IMO it is not correct to add import-export as a resource to
>>> our publisher REST API.
>>>
>>> WDYT?
>>>
>>> Thanks.
>>>
>>>
>>> On Tue, Jul 19, 2016 at 2:39 PM, Rasika Perera <[email protected]> wrote:
>>>
>>>> Hi Kaveesha,
>>>>
>>>> Few suggestions on the REST API for import-export.
>>>>
>>>> eg :-
>>>>> curl -H "Authorization:Basic AbCdEfG" -F file=@
>>>>> "/Desktop/MyAPIFolder/myExportedAPI.zip" -k -X POST "
>>>>> https://10.100.7.40:9443/api-import-export-<version>/import-api?
>>>>> *updateIfExists=true*"
>>>>
>>>> Isn't API import/export apis belongs to publisher? Or is
>>>> api-"import-export-<version>" is an api on a jaggery app?
>>>>
>>>> How about following APIs on publisher?
>>>>
>>>> https://apis.wso2.com/api/am/publisher/v0.9/apis/{apiId} - [already
>>>> exists][1]
>>>>
>>>> https://apis.wso2.com/api/am/publisher/v0.9/apis/{apiId}/documents/{documentId}
>>>>  [already exists][2]
>>>> https://apis.wso2.com/api/am/publisher/v0.9/apis/{apiId}/import-export
>>>> [new]
>>>>
>>>> *Importing API*
>>>> PUT https://apis.wso2.com/api/am/publisher/v0.9/apis/
>>>> <https://apis.wso2.com/api/am/publisher/v0.9/apis/%7BapiId%7D/import-export>
>>>> {apiId}/
>>>> <https://apis.wso2.com/api/am/publisher/v0.9/apis/%7BapiId%7D/import-export>
>>>> import-export
>>>> <https://apis.wso2.com/api/am/publisher/v0.9/apis/%7BapiId%7D/import-export>
>>>>    -> Update if exists API+Docs
>>>> POST
>>>> https://apis.wso2.com/api/am/publisher/v0.9/apis/{apiId}/import-export
>>>> -> Create a new API + Docs (Gives 409 if exists)
>>>>
>>>> *Export API*
>>>> GET https://apis.wso2.com/api/am/publisher/v0.9/apis/{apiId}/import-export
>>>>    -> Export API
>>>>
>>>> Regards,
>>>> Rasika
>>>>
>>>> [1]
>>>> https://docs.wso2.com/display/AM1100/apidocs/publisher/#!/operations#APICollectionApi#apisApiIdGet
>>>> [2]
>>>> https://docs.wso2.com/display/AM1100/apidocs/publisher/#!/operations#APIDocumentApi#apisApiIdDocumentsDocumentIdGet
>>>>
>>>> On Thu, Jul 14, 2016 at 5:22 PM, Kaveesha Perera <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi All,
>>>>>
>>>>> Current import/export tool doesn't facilitate updating a imported API.
>>>>> I modified the implementation of import/export tool in APIM to update a 
>>>>> API
>>>>> once its been try to import a already imported API using APIM REST API.
>>>>>
>>>>> When a user attempt to import a existing  API using *"*create a new
>>>>> API*" *REST API [ 1.
>>>>> https://docs.wso2.com/display/AM1100/apidocs/publisher/#!/operations#APICollectionApi#apisPost]
>>>>> , server gives out a error with code 409 stating a conflict. On it, then
>>>>> check whether the user has set the value of query parameter
>>>>> "updateIfExists" to true.(Refer the following example)
>>>>>
>>>>> eg :-
>>>>> curl -H "Authorization:Basic AbCdEfG" -F file=@
>>>>> "/Desktop/MyAPIFolder/myExportedAPI.zip" -k -X POST "
>>>>> https://10.100.7.40:9443/api-import-export-<version>/import-api?
>>>>> *updateIfExists=true*"
>>>>>
>>>>>  If then, update the existing API using following REST APIs,
>>>>>
>>>>>    - Update the existing API -
>>>>>    
>>>>> https://docs.wso2.com/display/AM1100/apidocs/publisher/#!/operations#APICollectionApi#apisApiIdPut
>>>>>    - Delete the existing API documents -
>>>>>    
>>>>> https://docs.wso2.com/display/AM1100/apidocs/publisher/#!/operations#APIDocumentApi#apisApiIdDocumentsDocumentIdDelete
>>>>>    - Add exported API documents -
>>>>>    
>>>>> https://docs.wso2.com/display/AM1100/apidocs/publisher/#!/operations#APIDocumentApi#apisApiIdDocumentsPost
>>>>>
>>>>>    - Update document contents -
>>>>>    
>>>>> https://docs.wso2.com/display/AM1100/apidocs/publisher/#!/operations#APIDocumentApi#apisApiIdDocumentsDocumentIdContentPost
>>>>>    - Add API thumbnail by calling to the end point
>>>>>    http://localhost:9763/api/am/publisher/v0.9//apis/{apiId}/thumbnail
>>>>>    
>>>>> <http://www.google.com/url?q=http%3A%2F%2F127.0.0.1%3A9763%2Fapi%2Fam%2Fpublisher%2Fv0.9%2F%2Fapis%2Ff7ac5958-e581-4631-9c39-bb7d0795cf7c%2Fthumbnail&sa=D&sntz=1&usg=AFQjCNEpM0xz1acxH3fPPubOP-RG_WhTsA>
>>>>>    with corresponding image file.
>>>>>
>>>>> else, If the value of query parameter "updateIfExists" is false,
>>>>> importing action ends up giving a appropriate error message stating API
>>>>> trying to create already exists.
>>>>> If there are any feedback on this procedure please reply.
>>>>>
>>>>> Regards,
>>>>>
>>>>> --
>>>>> Kaveesha Perera
>>>>> Intern - Software Engineering
>>>>>
>>>>> mobile: 0716130471
>>>>>
>>>>> _______________________________________________
>>>>> Architecture mailing list
>>>>> [email protected]
>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> With Regards,
>>>>
>>>> *Rasika Perera*
>>>> Software Engineer
>>>> LinkedIn: http://lk.linkedin.com/in/rasika90
>>>>
>>>> [image: wso2-signature-general.png] <https://wso2.com/signature>
>>>>
>>>> WSO2 Inc. www.wso2.com
>>>> lean.enterprise.middleware
>>>>
>>>> _______________________________________________
>>>> Architecture mailing list
>>>> [email protected]
>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>
>>>>
>>>
>>>
>>> --
>>> Best Regards,
>>>
>>> *Thilini Cooray*
>>> Software Engineer
>>> Mobile : +94 (0) 774 570 112 <%2B94%20%280%29%20773%20451194>
>>> E-mail : [email protected]
>>>
>>> WSO2 Inc. www.wso2.com
>>> lean.enterprise.middleware
>>>
>>
>>
>>
>> --
>> With Regards,
>>
>> *Rasika Perera*
>> Software Engineer
>> LinkedIn: http://lk.linkedin.com/in/rasika90
>>
>> [image: wso2-signature-general.png] <https://wso2.com/signature>
>>
>> WSO2 Inc. www.wso2.com
>> lean.enterprise.middleware
>>
>> _______________________________________________
>> Architecture mailing list
>> [email protected]
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
>
> *Sanjeewa Malalgoda*
> WSO2 Inc.
> Mobile : +94713068779
>
> <http://sanjeewamalalgoda.blogspot.com/>blog
> :http://sanjeewamalalgoda.blogspot.com/
> <http://sanjeewamalalgoda.blogspot.com/>
>
>
>
> _______________________________________________
> Architecture mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
Nuwan Dias

Software Architect - WSO2, Inc. http://wso2.com
email : [email protected]
Phone : +94 777 775 729
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to