Using /export might confuse with the api export API we have for API Manager
3.0. We should probably use the GET /apis Resource for this as well.
+1

Since we need to omit pagination (because in this case we need all results)
we may need to do something like this

GET /apis?limit=unlimited

Omitting pagination may lead to out of memory issue if it returns a large
JSON.
What could be the maximum no of APIs that a lable can have?

Thanks & Regards,
Ishara Cooray
Senior Software Engineer
Mobile : +9477 262 9512
WSO2, Inc. | http://wso2.com/
Lean . Enterprise . Middleware

On Thu, May 17, 2018 at 11:55 AM, Nuwan Dias <[email protected]> wrote:

>
>
> On Thu, May 17, 2018 at 11:49 AM, Malintha Amarasinghe <[email protected]
> > wrote:
>
>>
>>
>> On Thu, May 17, 2018 at 10:57 AM Nuwan Dias <[email protected]> wrote:
>>
>>> Using /export might confuse with the api export API we have for API
>>> Manager 3.0. We should probably use the GET /apis Resource for this as
>>> well.
>>>
>>> Since we need to search by label, we'll probably need to filter as below
>>>
>>> GET /apis?query=label:foo
>>>
>>> Since we need to omit pagination (because in this case we need all
>>> results) we may need to do something like this
>>>
>>> GET /apis?limit=unlimited
>>>
>> The limit is currently defined as a number. How about limit=-1? Or we
>> have to change the limit data type to string.
>>
>
> +1
>
>>
>>
>>> The GET /apis responds with a partial payload for listing purposes.
>>> Since that doesn't work in this case we probably need to support a query
>>> param named 'expand'. Ex:
>>>
>>> GET /apis?expand=true
>>>
>>> We may need to honor the Accept header to decide on compression. Ex:
>>>
>>> Accept: application/gzip
>>>
>>> On Wed, May 16, 2018 at 6:38 PM, Ishara Cooray <[email protected]> wrote:
>>>
>>>> Hi Sachini,
>>>>
>>>> Since the response could have more than 1 APIs you will have to
>>>> consider about pagination as well.
>>>>
>>>> For that, you may use existing *APIList *resource in the
>>>> publisher-api.yaml
>>>>
>>>> Thanks & Regards,
>>>> Ishara Cooray
>>>> Senior Software Engineer
>>>> Mobile : +9477 262 9512
>>>> WSO2, Inc. | http://wso2.com/
>>>> Lean . Enterprise . Middleware
>>>>
>>>> On Tue, May 15, 2018 at 10:08 AM, Sachini De Silva <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi Harsha,
>>>>>
>>>>> Yes, the response contains the swagger definition of APIs and all
>>>>> fields in APIDTO. As for the current implementation labeled apis are
>>>>> returned as a json list. (see response.json) To accommodate this I have
>>>>> introduced a new DetailedAPIListDTO as below.
>>>>>
>>>>> DetailedAPIList:
>>>>>     title: Detailed API List
>>>>>     properties:
>>>>>       list:
>>>>>         type: array
>>>>>         items:
>>>>>           $ref: '#/definitions/API'
>>>>>
>>>>> At the moment I am working on compressing the response.
>>>>>
>>>>> Thanks,
>>>>> Sachini
>>>>>
>>>>>
>>>>> On Mon, May 14, 2018 at 5:39 PM, Harsha Kumara <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Hi Sachini,
>>>>>>
>>>>>> Is swagger definition embed with the response returning from this API?
>>>>>>
>>>>>> Thanks,
>>>>>> Harsha
>>>>>>
>>>>>> On Wed, May 9, 2018 at 2:49 PM Sachini De Silva <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> @Harsha Decided to return all information in APIDTO for each API as
>>>>>>> the response. (not only swagger definition, name, version, context and
>>>>>>> provider)
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Sachini
>>>>>>>
>>>>>>> On Wed, May 9, 2018 at 1:59 PM, Harsha Kumara <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> @Sachini Can you also add a sample response as well?
>>>>>>>>
>>>>>>>> On Wed, May 9, 2018 at 8:02 AM, Malintha Amarasinghe <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, May 8, 2018 at 6:10 PM, Sachini De Silva <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Hi all,
>>>>>>>>>>
>>>>>>>>>> Proposed resource structure is as below.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> /exports/apis:
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> +1. I think this looks more like generic export resource which is
>>>>>>>>> not really specific for the ballerina gw feature. I think it is okay 
>>>>>>>>> as we
>>>>>>>>> can use this for any other future requirements which needs API export
>>>>>>>>> facilities.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>    get:
>>>>>>>>>>      x-scope: apim:api_export
>>>>>>>>>>
>>>>>>>>> +1
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>      produces:
>>>>>>>>>>        - application/x-gzip
>>>>>>>>>>
>>>>>>>>> Not sure this is the most suitable content type we need
>>>>>>>>> among application/zip, application/gzip and application/x-gzip?
>>>>>>>>>
>>>>>>>>> To choose a better one, I think we need to think about what
>>>>>>>>> structure we are going to give a response with API information.
>>>>>>>>>
>>>>>>>>> Will it be a compressed file with a set of folders that containing
>>>>>>>>> each API's information?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>      summary: Return apis categorized into a label.
>>>>>>>>>>      description: |
>>>>>>>>>>        This operation can be used to fetch APIs categorized into
>>>>>>>>>> a certain label.
>>>>>>>>>>      parameters:
>>>>>>>>>>        - name: labelId
>>>>>>>>>>          in: query
>>>>>>>>>>          required: true
>>>>>>>>>>          type: string
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Since this is a "required" query parameter, we can think of *GET
>>>>>>>>> /exports/apis/{labelId} *as well. But if we use this, we will
>>>>>>>>> loose the opportunity to define *GET /exports/apis/{apiId} *in
>>>>>>>>> future to export a single API. So +1 for the query parameter.
>>>>>>>>>
>>>>>>>>> Thanks!
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>      responses:
>>>>>>>>>>        200:
>>>>>>>>>>          description: |
>>>>>>>>>>            OK.
>>>>>>>>>>          schema:
>>>>>>>>>>            type: file
>>>>>>>>>>          headers:
>>>>>>>>>>            Content-Type:
>>>>>>>>>>              description: |
>>>>>>>>>>                The content type of the body.
>>>>>>>>>>              type: string
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>        404:
>>>>>>>>>>          description: |
>>>>>>>>>>            Not Found
>>>>>>>>>>            Resource to be fetched does not exist.
>>>>>>>>>>          schema:
>>>>>>>>>>            $ref: '#/definitions/Error'
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> A new scope apim:export_apis will be added and the new resource
>>>>>>>>>> will be protected by that.
>>>>>>>>>> The returned file will contain necessary details to create
>>>>>>>>>> ballerina files for the APIs. This includes,API name, version, 
>>>>>>>>>> provider,
>>>>>>>>>> context, API swagger definition of each API that satisfies the label 
>>>>>>>>>> query.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>>
>>>>>>>>>> Sachini
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Fri, May 4, 2018 at 10:42 AM, Krishan Wijesena <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Fri, May 4, 2018 at 9:57 AM, Sachini De Silva <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> *Design Overview*
>>>>>>>>>>>> I am working on developing a REST API to fetch API details to
>>>>>>>>>>>> APIM gateway from the publisher. Fetching of APIs is based on 
>>>>>>>>>>>> labels, i.e
>>>>>>>>>>>> as mentioned in [1] a certain set of APIs can be grouped into a 
>>>>>>>>>>>> certain
>>>>>>>>>>>> gateway instance by a label. When setting up the gateway the user 
>>>>>>>>>>>> executes
>>>>>>>>>>>> following command followed by user credentials.
>>>>>>>>>>>>
>>>>>>>>>>>> setup <label>
>>>>>>>>>>>>
>>>>>>>>>>>> Then a request for APIs labeled with <label> is sent to API
>>>>>>>>>>>> publisher. The response to this is, API details as a compressed 
>>>>>>>>>>>> JSON. Then
>>>>>>>>>>>> based on the retrieved details b7a project  structure for the 
>>>>>>>>>>>> gateway
>>>>>>>>>>>> instance will be created and deployed.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>    How we handle the permission restrictions here? for example
>>>>>>>>>>> if label X attached to API1, UserA do not have permission to view
>>>>>>>>>>> API1(restricted by roles) called setup<labelX> and he should not 
>>>>>>>>>>> get that
>>>>>>>>>>> API1 with compressed JSON? or do we provide all the API with label 
>>>>>>>>>>> X to
>>>>>>>>>>> that perticulr userA?
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> So ideally I should be able to do this by adding a new resource
>>>>>>>>>>>> to publisher-api.yaml to fetch APIs by label. Then this resource 
>>>>>>>>>>>> call has
>>>>>>>>>>>> to be mapped to where the setup command is executed.
>>>>>>>>>>>>
>>>>>>>>>>>> Suggestions are highly appreciated.
>>>>>>>>>>>>
>>>>>>>>>>>> Related mail threads :
>>>>>>>>>>>> [1] [Architecture][APIM] Label feature for API-Manager gateway
>>>>>>>>>>>> [2] [Architecture][APIM][API-Manager gateway] Attaching Labels
>>>>>>>>>>>> for APIs
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Sachini
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>>
>>>>>>>>>>>> *Sachini De Silva*
>>>>>>>>>>>> Software Engineer - WSO2
>>>>>>>>>>>>
>>>>>>>>>>>> Email : [email protected]
>>>>>>>>>>>> Mobile : +94714765495
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> Architecture mailing list
>>>>>>>>>>>> [email protected]
>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>>
>>>>>>>>>>> *Krishan Wijesena*
>>>>>>>>>>> Software Engineer | WSO2
>>>>>>>>>>>
>>>>>>>>>>> Email : [email protected]
>>>>>>>>>>> Mobile : +94776219923
>>>>>>>>>>> WSO2 Inc : http://wso2.com
>>>>>>>>>>> [image: http://wso2.com/signature] <http://wso2.com/signature>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>>> *Sachini De Silva*
>>>>>>>>>> Software Engineer - WSO2
>>>>>>>>>>
>>>>>>>>>> Email : [email protected]
>>>>>>>>>> Mobile : +94714765495
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Architecture mailing list
>>>>>>>>>> [email protected]
>>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Malintha Amarasinghe
>>>>>>>>> *WSO2, Inc. - lean | enterprise | middleware*
>>>>>>>>> http://wso2.com/
>>>>>>>>>
>>>>>>>>> Mobile : +94 712383306
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Architecture mailing list
>>>>>>>>> [email protected]
>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Harsha Kumara
>>>>>>>> Software Engineer, WSO2 Inc.
>>>>>>>> Mobile: +94775505618
>>>>>>>> Blog:harshcreationz.blogspot.com
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Architecture mailing list
>>>>>>>> [email protected]
>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> *Sachini De Silva*
>>>>>>> Software Engineer - WSO2
>>>>>>>
>>>>>>> Email : [email protected]
>>>>>>> Mobile : +94714765495
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Architecture mailing list
>>>>>>> [email protected]
>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Harsha Kumara
>>>>>> Software Engineer, WSO2 Inc.
>>>>>> Mobile: +94775505618
>>>>>> Blog:harshcreationz.blogspot.com
>>>>>>
>>>>>> _______________________________________________
>>>>>> Architecture mailing list
>>>>>> [email protected]
>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> *Sachini De Silva*
>>>>> Software Engineer - WSO2
>>>>>
>>>>> Email : [email protected]
>>>>> Mobile : +94714765495
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Architecture mailing list
>>>>> [email protected]
>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>
>>
>>
>> --
>> Malintha Amarasinghe
>> *WSO2, Inc. - lean | enterprise | middleware*
>> http://wso2.com/
>>
>> Mobile : +94 712383306
>>
>> _______________________________________________
>> 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
>
>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to