[Architecture] Creating several versions of same API on APIM REST APIs

2016-09-11 Thread Kaveesha Perera
Hi,

Currently I'm working on a client side tool to perform import and export of
APIs in APIM.

I encountered conflict issues(error 409) on following instances when using
REST APIs to create a new API.
1.when trying to re-import already published API
2.when trying to import a new version of a already published API

This is because along API post , initially it check for the context by [1]
and throw a conflict exception if context template of the payload and a
existing API alike.

Several versions of the same API has same *context template* and it should
be a exceptional scenario of above mentioned procedure. To handle this hope
to do following modifications for apisPost REST API.

On API post initially do check [1]. If returns true, get the corresponding
API name from the database and check if the API name in the payload and the
published API are same. If same, then retrieve all the published versions
of that API from the database and check those against version stated in the
payload. Method should throws a conflict exception only if the payload
holds a already published version of the API or if the API name on the
payload and API name in the database corresponds to same context template
differs.Else it will allow the normal process of creating a new API.Summary
of the proposed changes are shown in Fig.1.0


​*Fig.1.0*



[1] apiProvider.isDuplicateContextTemplate(body.getContext())

If any feedback please do reply.

Regards,
Kaveesha

-- 
Kaveesha Perera
Intern - Software Engineering

mobile: 0716130471
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Creating several versions of same API on APIM REST APIs

2016-09-12 Thread Kaveesha Perera
Hi,


> Shouldn't we use apiProvider.checkIfAPIExists(apiId) as the first check
> of POST /apis endpoint?
> IMO it is good to start the duplicate check from API Identifier as it is
> the unique entry for all the APIs in APIM.
> Then we can go for apiProvider.isDuplicateContext
> Template(body.getContext()).
>
+1 , So that we can avoid the creation of APIs with duplicate API
name,provider and version, even with different context template.

With the above changes, flow will be as follows in Fig 1.1.


​

*Fig. 1.1.*
If have any feedback on this approach do reply.

Thanks,
Kaveesha.


On Mon, Sep 12, 2016 at 9:15 AM, Kaveesha Perera  wrote:

> Hi,
>
> Currently I'm working on a client side tool to perform import and export
> of APIs in APIM.
>
> I encountered conflict issues(error 409) on following instances when using
> REST APIs to create a new API.
> 1.when trying to re-import already published API
> 2.when trying to import a new version of a already published API
>
> This is because along API post , initially it check for the context by [1]
> and throw a conflict exception if context template of the payload and a
> existing API alike.
>
> Several versions of the same API has same *context template* and it
> should be a exceptional scenario of above mentioned procedure. To handle
> this hope to do following modifications for apisPost REST API.
>
> On API post initially do check [1]. If returns true, get the corresponding
> API name from the database and check if the API name in the payload and the
> published API are same. If same, then retrieve all the published versions
> of that API from the database and check those against version stated in the
> payload. Method should throws a conflict exception only if the payload
> holds a already published version of the API or if the API name on the
> payload and API name in the database corresponds to same context template
> differs.Else it will allow the normal process of creating a new API.Summary
> of the proposed changes are shown in Fig.1.0
>
>
> ​*Fig.1.0*
>
>
>
> [1] apiProvider.isDuplicateContextTemplate(body.getContext())
>
> If any feedback please do reply.
>
> Regards,
> Kaveesha
>
> --
> Kaveesha Perera
> Intern - Software Engineering
>
> mobile: 0716130471
>



-- 
Kaveesha Perera
Intern - Software Engineering

mobile: 0716130471
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] Exporting a API without Mediation Policies.

2016-10-19 Thread Kaveesha Perera
Hi all,

Currently I'm working on a client side tool to perform import and export of
APIs in APIM.

On proceeding with importing a exported API, I came across a doubt state,
Should we abort the normal process of API import if we failed to upload the
corresponding mediation policies of that API, or should we allow the normal
API import procedure even without mediation policies?
WDYT?

Regards,
Kaveesha.
-- 
Kaveesha Perera
Intern - Software Engineering

mobile: 0716130471
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Creating several versions of same API on APIM REST APIs

2016-10-20 Thread Kaveesha Perera
Hi all,

I recently finished above discussed implementation and procedure underwent
several modifications to overcome few erroneous situations arose. Current
flow with those modifications are summarized in the following Fig 1.2.
Please find the corresponding pr in [1].


​


* Fig 1.2*[1]  https://github.com/wso2/carbon-apimgt/pull/3015

If any feedback, please reply.

Regards,
Kaveesha.

On Mon, Sep 12, 2016 at 2:00 PM, Kaveesha Perera  wrote:

> Hi,
>
>
>> Shouldn't we use apiProvider.checkIfAPIExists(apiId) as the first check
>> of POST /apis endpoint?
>> IMO it is good to start the duplicate check from API Identifier as it is
>> the unique entry for all the APIs in APIM.
>> Then we can go for apiProvider.isDuplicateContext
>> Template(body.getContext()).
>>
> +1 , So that we can avoid the creation of APIs with duplicate API
> name,provider and version, even with different context template.
>
> With the above changes, flow will be as follows in Fig 1.1.
>
>
> ​
>
> *Fig. 1.1.*
> If have any feedback on this approach do reply.
>
> Thanks,
> Kaveesha.
>
>
> On Mon, Sep 12, 2016 at 9:15 AM, Kaveesha Perera 
> wrote:
>
>> Hi,
>>
>> Currently I'm working on a client side tool to perform import and export
>> of APIs in APIM.
>>
>> I encountered conflict issues(error 409) on following instances when
>> using REST APIs to create a new API.
>> 1.when trying to re-import already published API
>> 2.when trying to import a new version of a already published API
>>
>> This is because along API post , initially it check for the context by
>> [1] and throw a conflict exception if context template of the payload and a
>> existing API alike.
>>
>> Several versions of the same API has same *context template* and it
>> should be a exceptional scenario of above mentioned procedure. To handle
>> this hope to do following modifications for apisPost REST API.
>>
>> On API post initially do check [1]. If returns true, get the
>> corresponding API name from the database and check if the API name in the
>> payload and the published API are same. If same, then retrieve all the
>> published versions of that API from the database and check those against
>> version stated in the payload. Method should throws a conflict exception
>> only if the payload holds a already published version of the API or if the
>> API name on the payload and API name in the database corresponds to same
>> context template differs.Else it will allow the normal process of creating
>> a new API.Summary of the proposed changes are shown in Fig.1.0
>>
>>
>> ​*Fig.1.0*
>>
>>
>>
>> [1] apiProvider.isDuplicateContextTemplate(body.getContext())
>>
>> If any feedback please do reply.
>>
>> Regards,
>> Kaveesha
>>
>> --
>> Kaveesha Perera
>> Intern - Software Engineering
>>
>> mobile: 0716130471
>>
>
>
>
> --
> Kaveesha Perera
> Intern - Software Engineering
>
> mobile: 0716130471
>



-- 
Kaveesha Perera
Intern - Software Engineering

mobile: 0716130471
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] New operation for sequence upload/download in CXF REST API

2016-10-26 Thread Kaveesha Perera
e":"in",
"config":"http://ws.apache.org/ns/synapse\";
name=\"json_to_xml_in_message\">  "
   }


Delete a global mediation policy

This operation can be used to delete an existing Mediation Policy by
proving the uuid of the Mediation Policy

DELETE https://localhost:9443/api/am/admin/v0.10/apis
*/policies/mediation/{uuid}*

*Oauth 2.0 scope *: apim:mediation_policy_create

*Request *:
DELETE https://127.0.0.1:9443/api/am/admin/v0.10/policies/mediation
/6fb74674-4ab8-4b52-9886-f9a376985060
<https://127.0.0.1:9443/api/am/publisher/v0.10/policies/mediation/6fb74674-4ab8-4b52-9886-f9a376985060>
Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8

*Response *:
 HTTP/1.1 200 OK


Publisher REST APIs on upload/download the* API specific mediation policies*
will accept the same payloads and the returning responses same as above
unless the url of the endpoint directed to,https://127.0.0.1:9443/api/
am/publisher/v0.10/




*apis/{apiId}/policies/mediationAPI Specific Mediation Policies*Retrieve
all API specific mediation policies of a API

GET https://localhost:9443/api/am/publisher/v0.10/apis/
*{apiId}/policies/mediation*

Oauth 2.0 scope : apim:api_view

Request :
GET https://127.0.0.1:9443/api/am/publisher/v0.10/apis/15382857-
dbb2-4749-9c9c-4557c51048e2
<https://127.0.0.1:9443/api/am/publisher/v0.10/policies/mediation>/
policies/mediation
<https://127.0.0.1:9443/api/am/publisher/v0.10/policies/mediation>
Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8


Create a new API specific mediation policy

POST https://localhost:9443/api/am/publisher/v0.10/apis/
*{apiId}/policies/mediation*

Oauth 2.0 scope : apim:api_create

Request :
 POST https://127.0.0.1:9443/api/am/publisher/v0.10/apis/15382857-
dbb2-4749-9c9c-4557c51048e2
<https://127.0.0.1:9443/api/am/publisher/v0.10/policies/mediation>/po
licies/mediation
<https://127.0.0.1:9443/api/am/publisher/v0.10/policies/mediation>
 Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8


Get details of a API specific mediation policy

GET https://localhost:9443/api/am/publisher/v0.10/apis/
*{apiId}/policies/mediation/{uuid}*

Oauth 2.0 scope : apim:api_view

Request :
GET https://127.0.0.1:9443/api/am/publisher/v0.10/apis/
<https://127.0.0.1:9443/api/am/publisher/v0.10/policies/mediation/7a2298c4-c905-403f-8fac-38c73301631f>
15382857-dbb2-4749-9c9c-4557c51048e2/
<https://127.0.0.1:9443/api/am/publisher/v0.10/policies/mediation>po
licies/mediation/1813c3e8-d831-4e20-90e3-bbb70d2ca59e
<https://127.0.0.1:9443/api/am/publisher/v0.10/policies/mediation/7a2298c4-c905-403f-8fac-38c73301631f>
Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8

Update a existing API specific mediation policy

PUT https://localhost:9443/api/am/publisher/v0.10/apis/

*{apiId}/policies/mediation/{uuid}**Oauth 2.0 scope* : apim:api_create

*Request* :
PUT https://127.0.0.1:9443/api/am/publisher/v0.10/apis/
<https://127.0.0.1:9443/api/am/publisher/v0.10/policies/mediation/7a2298c4-c905-403f-8fac-38c73301631f>
15382857-dbb2-4749-9c9c-4557c51048e2/
<https://127.0.0.1:9443/api/am/publisher/v0.10/policies/mediation>
policies/mediation/1813c3e8-d831-4e20-90e3-bbb70d2ca59e
<https://127.0.0.1:9443/api/am/publisher/v0.10/policies/mediation/7a2298c4-c905-403f-8fac-38c73301631f>
Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8

Delete a API specific mediation policy

DELETE https://localhost:9443/api/am/publisher/v0.10/apis/

*{apiId}/policies/mediation/{uuid}**Oauth 2.0 scope *: apim:api_create

*Request *:
DELETE https://127.0.0.1:9443/api/am/publisher/v0.10/apis/
<https://127.0.0.1:9443/api/am/publisher/v0.10/policies/mediation/7a2298c4-c905-403f-8fac-38c73301631f>
15382857-dbb2-4749-9c9c-4557c51048e2/
<https://127.0.0.1:9443/api/am/publisher/v0.10/policies/mediation>po
licies/mediation/1813c3e8-d831-4e20-90e3-bbb70d2ca59e
<https://127.0.0.1:9443/api/am/publisher/v0.10/policies/mediation/7a2298c4-c905-403f-8fac-38c73301631f>
Authorization: Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8


If any modifications should be done on above, please reply.

Regards,
Kaveesha

-- 
Kaveesha Perera
Intern - Software Engineering

mobile: 0716130471
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] Client side tool for API import/ export feature of APIM

2016-10-31 Thread Kaveesha Perera
Hi all,

Recently i finished developing a client side tool to perform import and
export of APIS in APIM.This is a brief description about the tool and its
basic functionality. Please find the corresponding repository in [1]. Tool
is simply a jar file where user can configure using a external
configuration file or using command line parameters passing along jar
execution. (however tool is per-configured with default configurations)

Using this tool, can perform single API export and bulk API export
depending on the user's configuration on the tool. User can pass a list of
APIs in CSV file and export them all together with their association
information as thumbnails, documents, wsdl and mediation policies to be
export at once and create a single exportable file. Exportable file
structure will be as Fig 1.1 . All the information regarding each APIs are
retrieved through available publisher and admin REST APIs available and
write in to the folder been exporting. For that user should be log in to
the system using valid credentials and obtain access tokens with required
scopes.


​
Fig 1.1


Inside each API folder, structure will be as in Fig 1..2


​Fig 1.2

Tool also support single and bulk import of APIs depending on the no of
APIs inside the imported folder. (As in Fig 1.1, no of APIs to be import
will be 3). Process involve in reading each component inside the imported
folder and create new APIs together with related associations depending on
the compatibilities as  authorization etc. This is also achieved by calling
available admin and publisher REST APIs. User should login with valid
credentials and obtain access tokens with valid scopes to perform the
procedure.

This is the basic functionality of the tool and more comprehensive
documentation will be available in [1] soon .

[1] https://github.com/knPerera/importExport

If have any feed back please do reply.

Regards,
Kaveesha.
-- 
Kaveesha Perera
Intern - Software Engineering

mobile: 0716130471
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] Improvements for API import/export base on APIM REST API

2016-07-14 Thread Kaveesha Perera
Hi All,

Current import/export tool of APIM is based on APIM internal Java API
implementations for its functionality, Which been lead to tight coupling
between the code and  the API. This make restrictions on API maintenance
across versions and code changes.

Recently I'm working on modifying import/export tool to use APIM REST API
implementations to perform it's functionalities.This will add more dynamic
nature to APIs irrespective to the changes in code bases.

I'm completed with the first phase of the above by exporting a API using
REST APIs.

Invoking a REST API require access token.Before that need to obtain the
consumer key/secret key pairs. To obtain consumer key/secrete pairs and
access tokens implemented a Java client to call dynamic client registration
endpoint to as in 1)
https://docs.wso2.com/display/AM1100/apidocs/publisher/index.html#guide.

I changed the current implementations of import/export to retrieve the
information related to a particular API using REST API. Following REST APIs
are used over that. These need access token with scope *apim:api_view*.


   - Get details of an API-
   
https://docs.wso2.com/display/AM1100/apidocs/publisher/index.html#!/operations#APICollectionApi#apisApiIdGet
   - Get API documentations -
1)https://docs.wso2.com/display/AM1100/apidocs/publisher/index.html#!/operations#APIDocumentApi#apisApiIdDocumentsGet

   -2)
   
https://docs.wso2.com/display/AM1100/apidocs/publisher/index.html#!/operations#APIDocumentApi#apisApiIdDocumentsDocumentIdContentGet
   - Get thumbnail image -  retrieve by calling endpoint
   http://localhost:9763/api/am/publisher/v0.9/apis/{apiId}/thumbnail
   - Information on the swagger included withing the retrieved API
   definition.

All the information of the existing API, retrieved from above are written
in to a directory which can be export as a .zip archive. This exporting ZIP
file contains the following structure:


​
If any feedback please reply.

Regards,

-- 
Kaveesha Perera
Intern - Software Engineering

mobile: 0716130471
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] Facilitating Updating API with import/export tool in APIM

2016-07-14 Thread Kaveesha Perera
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-/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
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Improvements for API import/export base on APIM REST API

2016-07-20 Thread Kaveesha Perera
Hi Rasika,

your suggestions on .zip archive were accepted and changed the structure
accordingly.

Purpose of* FileContents* folder is to hold the corresponding file of a API
document with source type "FILE". "FILE" type documents are maintained
inside this folder to overcome the conflict that will arise at any case
between docs.json and  the document file, if a file named "docs.json"
uploaded as a *FILE* source typed document.

*InlineContents* folder is used to store API document content  with source
type "In-line".

And yes, this structure is valid for both REST and SOAP.

Regards,


On Tue, Jul 19, 2016 at 2:01 PM, Rasika Perera  wrote:

> Hi Kaveesha,
>
> Current import/export tool of APIM is based on APIM internal Java API
>> implementations for its functionality, Which been lead to tight coupling
>> between the code and  the API. This make restrictions on API maintenance
>> across versions and code changes.
>> Recently I'm working on modifying import/export tool to use APIM REST API
>> implementations to perform it's functionalities.This will add more dynamic
>> nature to APIs irrespective to the changes in code bases.
>> I'm completed with the first phase of the above by exporting a API using
>> REST APIs.
>
> +1 for allowing import/export capabilities through the REST-APIs.
>
> Few suggestions on the structure of the .zip archive;
>
> -
>|-meta-info <- renamed : all in
> simple case would simplify case-sensitive problems
>|   |---api.json
>|   `--swagger.json
>|-docs<- renamed : all in
> simple case would simplify case-sensitive problems
>|  |FileContents   <- what'd be the
> purpose of this folder?
>|  |InlineContents<- what'd be purpose of
> this folder?
>|  `---docs.json
>|-thumbnail. <- removed folder : since
> there's one image. renamed: thumbnail is more suitable IMO.
>|-sequences   <- renamed : all in
> simple case would simplify case-sensitive problems
>|  |fault-sequence
>|  |in-sequence
>|  `out-sequence
>`--.wsdl <- removed folder : since there's
> only one wsdl
>
> Does above structure valid for both REST and SOAP?
>
> Thanks,
> Rasika
>
> --
> 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
>



-- 
Kaveesha Perera
Intern - Software Engineering

mobile: 0716130471
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Facilitating Updating API with import/export tool in APIM

2016-07-20 Thread Kaveesha Perera
Hi All,

Earlier API Manager doesn't included a separate REST API for it's
functionality. Import/export API directly called implementation layer for
its operations.

As API Manager consists of a REST API now, api-import-export tool was
implemented to consume it instead of directly accessing the implementation
layer. Currently clients calls the import/export API then import/export API
calls publisher REST API, which interact with implementations and perform
import and export of APIs. [Refer *Diagram 1.0* ]


 *Diagram 1.0*


As Rasika suggested, if we added a new resource to the existing publisher
REST API for api import and export, it will generate a situation where API
calls another API for it's functionality,  which is the same scenario
currently prevailing. So we are hoping to move forward with import/export
as follows.

We are hoping integrate the tasks of import/export API into a .jar which
will be deploy and execute as a client app and then client app will
directly consume REST API for import/export operations.[Refer *Diagram 1.1*
]





* Diagram 1.1*
If you have any feedback on this procedure please reply.

Regards,

On Wed, Jul 20, 2016 at 12:33 PM, Rasika Perera  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-/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-/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/.
>
> WDYT?
>
> Thanks,
> Rasika
>
> On Wed, Jul 20, 2016 at 10:06 AM, Thilini Cooray 
> 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  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-/import-api?
>>>> *updateIfExists=true*"
>>>
>>> Isn't API import/export apis belongs to publisher? Or is
>>> api-"import-export-" 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,
&

[Architecture] Bulk export of APIs via APIM

2016-07-21 Thread Kaveesha Perera
Hi All,

I'm planing to improve APIM import/export tool to support bulk import and
bulk export of APIs.

When considering the bulk export, there it came up to a discussion point on
how to get the API list to be export. Considering several facts, came up
with two suggestions as follows.

[1]. Asking user to submit a file with explicitly written list of APIs.
(API detail may include name, version and provider)

[2]. Getting the prevailing list of APIs using getAllAPIs REST API, save
the usable content of resulting string in a separate file, then allow user
to edit it such that he can remove the unwanted APIs  from the list, use it
as a input for the bulk export.

Currently we prefer procedure [1], since the process [2] creates additional
overhead due to the REST API call. Still there can be are pros and cons in
both the processors. If any opinions on above and any options please do
reply.

Regards.
-- 
Kaveesha Perera
Intern - Software Engineering

mobile: 0716130471
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] OAuth Life cycle in client side tool of APIM import/export

2016-08-18 Thread Kaveesha Perera
Hi all,

Currently I'm working on a client side tool that consumes REST APIs for API
import/export feature of APIM (Refer to my previous email labeled [1]).
There OAuth life cycle goes as follows.

User asked to give a application name on the configuration file.Using that,
tool create a client application calling DCR endpoint to obtain consumer
keys and consumer secretes required to generate tokens that are needed for
import and export of APIs. In the case where user didn't provide any
application name, tool's default name will be used for the above.

If the application already exists and only if the user is the owner of that
particular application, consumer key and the consumer secret of the
existing application will be returned by the DCR endpoint.

If any feedback on this process please do reply.

*[1] Facilitating Updating API with import/export tool in APIM *

Regards,
-- 
Kaveesha Perera
Intern - Software Engineering

mobile: 0716130471
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture