Hi Isuru,

Please see my comments inline.



On Wed, Jan 11, 2017 at 6:03 PM, Isuru Haththotuwa <[email protected]> wrote:

>
>
> On Wed, Jan 11, 2017 at 2:56 PM, Rushmin Fernando <[email protected]>
> wrote:
>
>> IMO although we need bulk (all APIs) exporting and per API exporting,
>> only one ReST resource is enough for importing.
>>
>> The resource would read the received package and import the API(s) inside
>> the package. So having a ReST resource for importing a single API is
>> redundant.
>>
> Agreed. Should be able to identify whether there is only a single api /
> many apis from the multipart data and do the API data insertion with a
> single resource.
>
>>
>> And is there a real need for restricting the bulk import for admin users
>> ?
>>
> An API can be published by different users. In a scenario where the api
> portal is exposed as a service (where users can signup and publish APIs),
> IMHO we should restrict the ability for a single user to export/import all
> APIs, which can impact all users.
>
>>
>>
Actually I was only commenting on API importing. Say I'm an API publisher
and I have published 10 APIs. I should be able to export all 10 APIs and
import them to another env.

Seems like we need a generic bulk API import/exports as well as *ALL* API
import/export which is a special case and a more restricted action.



> On Tue, Jan 10, 2017 at 11:22 AM, Isuru Haththotuwa <[email protected]>
>> wrote:
>>
>>> Hi Devs,
>>>
>>> This is to discuss subject.
>>>
>>> *Requirement:*
>>>
>>> Once an API is exported, its possible to be directly imported in to
>>> another APIM deployment in a separate environment. For an admin user, it
>>> should be possible to export all APIs in one deployment to another one.
>>>
>>> The following information will be available in exported data, related to
>>> a single API:
>>>
>>>    - Docs
>>>    - API definition (JSON formatted)
>>>    - Swagger file (JSON formatted)
>>>    - Gateway configuration
>>>    - API thumbnails (image)
>>>
>>> Several new resources will be added to the publisher rest API to cater
>>> this, as follows:
>>>
>>> *GET **/apis/{apiId}**/export-config*
>>>
>>>    - Produces a form/multipart output as a zip archive, which will have
>>>    the following structure and which will comprise of the above mentioned
>>>    items:
>>>
>>> *          <provider-name>-<api-name>-<*
>>>
>>> *api-version>.zip                    |*
>>>
>>>
>>> *                    | --- Docs                    |        |*
>>> *                    |        | --- *<documentation_id>
>>>                    * |  *
>>> * |*
>>> *                    |                        | ---* documentation
>>> metadata (json)
>>>                   *  |                        | ---* documentation
>>> content (optional)
>>>
>>> *                    |*
>>>
>>>
>>> *                    | --- Gateway-Config                    |
>>>              |*
>>> *                    |              | --- *gateway config file
>>>
>>> *                    |*
>>> *                    | --- *thumbnail file
>>>
>>> *                    |*
>>> *                    | --- *api definition (json)
>>>
>>> *                    |*
>>> *                    | --- *swagger definition (json)
>>>
>>>
>>> Note that there can be multiple docs for a single API.
>>>
>>> *GET **/apis/export-config*
>>>
>>>    - Produces a zip archive comprising of the above structure for each
>>>    API in the system. This operation will be permitted for admin users only.
>>>
>>>
>>> *POST **/apis**/{apiId}**/import-config*
>>>
>>>    - Consumes the same zip archive produced by the
>>>    /{apiId/}export-config resource as a form/multipart input, extracts and
>>>    inserts the relevant data.
>>>
>>>
>>> *POST *
>>> */apis/import-config*
>>>
>>>    - Consumes the same zip archive produced by the /export-config
>>>    resource as a form/multipart input, extracts and inserts the relevant 
>>> data
>>>    for all APIs. Should be permitted only for admin users.
>>>
>>>
>>> This does not consider the endpoint information [1] yet. Would need to
>>> incorporate that here in a suitable way.
>>>
>>> Please share your feedback.
>>>
>>> [1]. [Architecture] [APIM][C5] - Definining Endpoint for Resource from
>>> Rest API
>>>
>>> --
>>> Thanks and Regards,
>>>
>>> Isuru H.
>>> +94 716 358 048 <071%20635%208048>* <http://wso2.com/>*
>>>
>>>
>>>
>>> _______________________________________________
>>> Architecture mailing list
>>> [email protected]
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>> *Best Regards*
>>
>> *Rushmin Fernando*
>> *Technical Lead*
>>
>> WSO2 Inc. <http://wso2.com/> - Lean . Enterprise . Middleware
>>
>> mobile : +94775615183
>>
>>
>>
>> _______________________________________________
>> Architecture mailing list
>> [email protected]
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> Thanks and Regards,
>
> Isuru H.
> +94 716 358 048 <071%20635%208048>* <http://wso2.com/>*
>
>
>
> _______________________________________________
> Architecture mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
*Best Regards*

*Rushmin Fernando*
*Technical Lead*

WSO2 Inc. <http://wso2.com/> - Lean . Enterprise . Middleware

mobile : +94775615183
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to