We can replace tag-groups with categories, and keep tags as it is which is
helpful in searches.

Thanks,
Bhathiya

On Wed, Nov 13, 2019 at 12:30 PM Sanjeewa Malalgoda <[email protected]>
wrote:

> If we have API categories then tag wise store view will not need anymore.
> As i remember tagwise store view working till last release.
> Only difference between categories and tags is categories created by admin
> while tags created by API creator. Do we have any other differences or
> specific use cases address by this?
>
> Thanks,
> sanjeewa.
>
> On Wed, Nov 13, 2019 at 12:22 PM Sachini De Silva <[email protected]>
> wrote:
>
>> @Harsha Kumara <[email protected]>  will switch to tenant id.
>>
>> @Nuwan Dias <[email protected]>  +1 will add a single scope
>> ‘apim:api_category’ to do all api categories related operations.
>>
>> In publisher, categories/ GET resource can be associated with
>> apim:api_view scope. In store we can avoid attaching a scope to categories/
>> GET resource and allow to access the resource without a token.
>>
>>
>>
>> On Wed, Nov 13, 2019 at 11:50 AM Nuwan Dias <[email protected]> wrote:
>>
>>> For the admin API, I don't think we need separate scopes for the read
>>> and write of categories, isn't it?
>>>
>>> The publisher and store APIs would also need an API each to fetch the
>>> categories. These can be bound to already available scopes I assume.
>>>
>>> On Wed, Nov 13, 2019 at 11:26 AM Sachini De Silva <[email protected]>
>>> wrote:
>>>
>>>> +1
>>>>
>>>> On Wed, Nov 13, 2019 at 11:13 AM Bhathiya Jayasekara <[email protected]>
>>>> wrote:
>>>>
>>>>> Shall we use "API Categories" everywhere instead of just "Categories"?
>>>>> Because in the future there can be other category types too.
>>>>>
>>>>> Thanks,
>>>>> Bhathiya
>>>>>
>>>>> On Wed, Nov 13, 2019 at 10:59 AM Sachini De Silva <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> I am working on a new feature ‘API Categories’. It is very similar to
>>>>>> tag wise grouping in store from a store UI POV but has the following
>>>>>> differences w.r.t tags.
>>>>>> 1. Categories define a broader collection of APIs. Tags can be used
>>>>>> by the publisher to emphasize specific details of an API.
>>>>>> 2. Categories have to be pre-defined by an Admin before they can be
>>>>>> associated with any APIs.
>>>>>> 3. Categories can have any valid string as their category name.
>>>>>> Whereas tag wise groups must have the suffix -group to be identified as a
>>>>>> tag group.
>>>>>>
>>>>>> In order to support this in APIM, I thought of using the following
>>>>>> approach.
>>>>>> 1. Define a REST API to do operations on category resources. Sample
>>>>>> GET and POST resources would be as below.
>>>>>>
>>>>>> *"/categories"*: {  *"get"*: {    *"x-scope"*: *"apim:category_read"*,   
>>>>>>  *"x-wso2-request"*: *"GET 
>>>>>> https://localhost:9443/api/am/admin/v0.15/categories 
>>>>>> <https://localhost:9443/api/am/admin/v0.15/categories>**\n**Authorization:
>>>>>>  Bearer ae4eae22-3f65-387b-a171-d37eaa366fa8**\n**"*,    
>>>>>> *"x-wso2-curl"*: *"curl -k -H **\"**Authorization: Bearer 
>>>>>> ae4eae22-3f65-387b-a171-d37eaa366fa8**\" 
>>>>>> \"**https://localhost:9443/api/am/admin/v0.15/categories 
>>>>>> <https://localhost:9443/api/am/admin/v0.15/categories>**\"**"*,    
>>>>>> *"x-wso2-response"*: *"HTTP/1.1 200 OK**\r\n**Content-Type: 
>>>>>> application/json**\r\n\r\n**{**\r\n   \"**count**\"**:1,**\r\n   
>>>>>> \"**list**\"**:[**\r\n*      *{**\r\n         
>>>>>> \"**id**\"**:**\"**463e2c9f-5e99-43c3-a66e-de7e0f367373**\"**,**\r\n     
>>>>>>     \"**name**\"**:**\"**Finance**\"**,**\r\n         
>>>>>> \"**description**\"**:**\"**Finance related APIS**\"\r\n*      *}**\r\n* 
>>>>>>   *]**\r\n**}"*,    *"summary"*: *"Get all API categories"*,    
>>>>>> *"description"*: *"Get all API categories**\n**"*,    *"tags"*: [      
>>>>>> *"Category Collection"*    ],    *"responses"*: {      *"200"*: {        
>>>>>> *"description"*: *"OK.**\n**Categories returned**\n**"*,        
>>>>>> *"schema"*: {          *"$ref"*: *"#/definitions/**Category**List"*      
>>>>>>   }      }    }  },  *"post"*: {    *"x-scope"*: 
>>>>>> *"apim:category_manage"*,    *"x-wso2-curl"*: *"curl -k -X POST -H 
>>>>>> **\"**Authorization: Bearer 0d63e133-7ad6-3aeb-9ca9-9299e0708122**\"* 
>>>>>> *-H **\"**Content-Type: application/json**\"* 
>>>>>> *https://apis.wso2.com/api/am/admin/v0.15/ 
>>>>>> <https://apis.wso2.com/api/am/admin/v0.15/>**categorie**s -d 
>>>>>> @data.json"*,    *"x-wso2-request"*: *"POST 
>>>>>> https://localhost:9443/api/am/admin/v0.15/categories 
>>>>>> <https://localhost:9443/api/am/admin/v0.15/categories>**\r\n**Authorization:
>>>>>>  Bearer 0d63e133-7ad6-3aeb-9ca9-9299e0708122**\r\n**Content-Type: 
>>>>>> application/json**\r\n\r\n* *-d  {**\r\n         
>>>>>> \"**name**\"**:**\"**Finance**\"**,**\r\n         
>>>>>> \"**description**\"**:**\"**Finance related APIS**\"\r\n* *}"*,    
>>>>>> *"x-wso2-response"*: *"HTTP/1.1 201 Created**\r\n**Content-Type: 
>>>>>> application/json**\r\n\r\n**{**\r\n   \"**count**\"**:1,**\r\n   
>>>>>> \"**list**\"**:[**\r\n*      *{**\r\n         
>>>>>> \"**id**\"**:**\"**463e2c9f-5e99-43c3-a66e-de7e0f367373**\"**,**\r\n     
>>>>>>     \"**name**\"**:**\"**Finance**\"**,**\r\n         
>>>>>> \"**description**\"**:**\"**Finance related APIS**\"\r\n*      *}**\r\n* 
>>>>>>   *]**\r\n**}"*,    *"summary"*: *"Add a Category"*,    *"description"*: 
>>>>>> *"Add a new API Category**\n**"*,    *"parameters"*: [      {        
>>>>>> *"in"*: *"body"*,        *"name"*: *"body"*,        *"description"*: 
>>>>>> *"Category object that should to be added**\n**"*,        *"required"*: 
>>>>>> *true*,        *"schema"*: {          *"$ref"*: 
>>>>>> *"#/definitions/Category"*        }      }    ],    *"tags"*: [      
>>>>>> *"Category"*    ],    *"responses"*: {      *"201"*: {        
>>>>>> *"description"*: *"Created.**\n**Successful response with the newly 
>>>>>> created object as entity in the body.**\n**"*,        *"schema"*: {      
>>>>>>     *"$ref"*: *"#/definitions/Category"*        }      },      *"400"*: 
>>>>>> {        *"description"*: *"Bad Request.**\n**Invalid request or 
>>>>>> validation error**\n**"*,        *"schema"*: {          *"$ref"*: 
>>>>>> *"#/definitions/Error"*        }      }    }  }}
>>>>>>
>>>>>> And category and categoryList would be defined as below.
>>>>>>
>>>>>> *"Category"*: {    *"title"*: *"Category"*,    *"required"*: [      
>>>>>> *"name"*    ],    *"properties"*: {      *"id"*: {        *"type"*: 
>>>>>> *"string"*,        *"example"*: *"01234567-0123-0123-0123-012345678901"* 
>>>>>>      },      *"name"*: {        *"type"*: *"string"*,        
>>>>>> *"example"*: *"Finance"*      },      *"description"*: {        
>>>>>> *"type"*: *"string"*,        *"example"*: *"Finance related APIs"*      
>>>>>> }    }  },  *"CategoryList"*: {    *"title"*: *"Category List"*,    
>>>>>> *"properties"*: {      *"count"*: {        *"type"*: *"integer"*,        
>>>>>> *"description"*: *"Number of categories returned.**\n**"*,        
>>>>>> *"example"*: 1      },      *"list"*: {        *"type"*: *"array"*,      
>>>>>>   *"items"*: {          *"$ref"*: *"#/definitions/Category"*        }    
>>>>>>   }    }  }}
>>>>>>
>>>>>> 2. Define a new AM_CATEGORIES table to hold category related details.
>>>>>>
>>>>>> *CREATE TABLE *IF *NOT EXISTS *AM_CATEGORIES (  CATEGORY_ID 
>>>>>> *VARCHAR*(50),  NAME *VARCHAR*(255),  DESCRIPTION *VARCHAR*(1024),  
>>>>>> TENANT_DOMAIN *VARCHAR*(255),  *UNIQUE *(NAME,TENANT_DOMAIN),  *PRIMARY 
>>>>>> KEY *(CATEGORY_ID));
>>>>>>
>>>>>> 3. Publisher UI overview tab(or a suitable place as it fits) will
>>>>>> have a new UI element to select categories for the API. And selecting
>>>>>> categories for an API would be optional.
>>>>>>
>>>>>> 4. API to category mapping will be stored in registry API artifact
>>>>>> and for that following table field would have to be added to api.rxt. (I
>>>>>> assume we are going to support associating a single API with multiple
>>>>>> categories)
>>>>>> <table name="Categories" columns="1"  maxoccurs="unbounded">
>>>>>>             <subheading>
>>>>>>                 <heading>Category Name</heading>
>>>>>>             </subheading>
>>>>>>             <field type="text">
>>>>>>                 <name label="Category Name">categoryName</name>
>>>>>>             </field>
>>>>>>  </table>
>>>>>>
>>>>>> 5. And from store viewing POV, I assume API categories are a
>>>>>> substitution for existing tag-wise grouping feature and that both 
>>>>>> tag-wise
>>>>>> groups and categories won’t co-exist in the store. Please do correct if 
>>>>>> my
>>>>>> understanding is wrong.
>>>>>> Once a developer visits the store, he will be presented with the list
>>>>>> of API categories and upon selecting a category out of those, associated
>>>>>> APIs will be listed.
>>>>>> APIs that are not associated with any category will be listed under
>>>>>> other APIs or a similar heading.
>>>>>>
>>>>>> Please feel free to add your suggestions.
>>>>>>
>>>>>> Thanks,
>>>>>> Sachini
>>>>>>
>>>>>> --
>>>>>>
>>>>>> *Sachini De Silva*
>>>>>> Senior Software Engineer - WSO2
>>>>>>
>>>>>> Email : [email protected]
>>>>>> Mobile : +94714765495
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> *Bhathiya Jayasekara* | Technical Lead | WSO2 Inc.
>>>>> (m) +94 71 547 8185  | (e) bhathiya-@t-wso2-d0t-com
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>>
>>>> *Sachini De Silva*
>>>> Senior Software Engineer - WSO2
>>>>
>>>> Email : [email protected]
>>>> Mobile : +94714765495
>>>>
>>>>
>>>
>>> --
>>> *Nuwan Dias* | Director | WSO2 Inc.
>>> (m) +94 777 775 729 | (e) [email protected]
>>> [image: Signature.jpg]
>>>
>>
>>
>> --
>>
>> *Sachini De Silva*
>> Senior Software Engineer - WSO2
>>
>> Email : [email protected]
>> Mobile : +94714765495
>>
>>
>
> --
> *Sanjeewa Malalgoda*
> Software Architect | Associate Director, Engineering - WSO2 Inc.
> (m) +94 712933253 | (e) [email protected] | (b) Blogger
> <http://sanjeewamalalgoda.blogspot.com>, Medium
> <https://medium.com/@sanjeewa190>
>
> GET INTEGRATION AGILE <https://wso2.com/signature>
> Integration Agility for Digitally Driven Business
>


-- 
*Bhathiya Jayasekara* | Technical Lead | WSO2 Inc.
(m) +94 71 547 8185  | (e) bhathiya-@t-wso2-d0t-com
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to