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
