Hi: One more thing, I think we only need to implement this API in Manager API(for Dashboard), all right?
On Tue, Dec 8, 2020 at 6:09 PM 刘曦冉 <[email protected]> wrote: > I think so, too ^-^, for currently `GET /apisix/admin/plugins` only return > plugin names list, and as we want to keep the original api the same > > 在 2020-12-07 19:24:46,"Zhiyuan Ju" <[email protected]> 写道: > >OK for me, and it's default value should be false IMO? > > > >刘曦冉 <[email protected]> 于 2020年12月7日周一 下午1:23写道: > > > >> Hi Community:For the name of the API, zexuan recommended ` > >> /apisix/admin/plugins?all=true`, because > >> > The definition of `plugin attributes` is taken too. > >> > >> > >> it is fine for me and what do you think? > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> At 2020-12-01 11:18:37, "Zexuan Luo" <[email protected]> wrote: > >> >The definition of `plugin attributes` is taken too, see > >> > > >> > https://github.com/apache/apisix/blob/9dfe697b644691509b55cd7ec58188b33dd3e792/conf/config-default.yaml#L245 > >> > > >> >What about using ` /apisix/admin/plugins?all=true`? > >> > > >> >BTW, it would be better if we can avoid the verb in the REST API, to > make > >> >it less like RPC. > >> >If the verb is inevitable, put it in the last part, like this: > >> >/apisix/admin/plugins:list?all=true. > >> >Therefore we can avoid conflict when we need to introduce > >> >/apisix/admin/plugin/<plugin_name> API. > >> > > >> >YuanSheng Wang <[email protected]> 于2020年12月1日周二 上午10:38写道: > >> > > >> >> I think this is fine for us. > >> >> > >> >> API: */apisix/admin/plugins/list_with_attributes* > >> >> Desc: return all the attributes of the plugin. > >> >> > >> >> Return value: > >> >> > >> >> ```json > >> >> [ > >> >> { > >> >> "name": "key-auth", > >> >> "type": "auth", > >> >> "schema": { > >> >> .... > >> >> } > >> >> ...other plugin meta_data > >> >> }, > >> >> { > >> >> ... > >> >> } > >> >> ] > >> >> ``` > >> >> > >> >> > >> >> On Tue, Dec 1, 2020 at 10:36 AM 刘曦冉 <[email protected]> wrote: > >> >> > >> >> > > >> >> > > >> >> > > >> >> > Thanks for zexuan‘s explanation which answered my question. > >> >> > as for the name of the new api, > >> >> > > How about this name? > >> >> > /apisix/admin/plugins/list_all > >> >> > > >> >> > > >> >> > agree, for 2.x is a good compromise. > >> >> > we can add a TODO here, when we do a big version upgrade, we could > >> >> > consider to uses `/plugins` and query params to get all plugin > >> >> information > >> >> > and specific plugin information. > >> >> > > >> >> > > >> >> > > >> >> > > >> >> > > >> >> > > >> >> > > >> >> > > >> >> > 在 2020-12-01 09:18:19,"Zexuan Luo" <[email protected]> 写道: > >> >> > >> plugin metadata includes > >> >> > >name, version, type, priority, which is common to all plugins, > and is > >> >> used > >> >> > >to describe the nature of the plugin > >> >> > > > >> >> > >The terminology of 'plugin metadata' is already taken by plugin > >> level > >> >> > >configuration. We should avoid redefinition of 'plugin metadata' > and > >> >> > define > >> >> > >a new name for plugin info > >> >> > > > >> >> > >王三 <[email protected]> 于2020年11月30日周一 下午10:20写道: > >> >> > > > >> >> > >> I think metadata and schema are parallel things, plugin metadata > >> >> > includes > >> >> > >> name, version, type, priority, which is common to all plugins, > and > >> is > >> >> > used > >> >> > >> to describe the nature of the plugin. > >> >> > >> The schema and consumer_schema are the plugin's schema, which > >> defines > >> >> > the > >> >> > >> configuration parameters for generating a plugin instance. > >> >> > >> > >> >> > >> Perhaps the above perception is slightly radical. > >> >> > >> I prefer to think of the schema and consumer_schema as part of > the > >> >> > plugin‘s > >> >> > >> metadata, except that some plugins have a null consumer_schema. > >> >> > >> > >> >> > >> 刘曦冉 <[email protected]> 于2020年11月30日周一 下午10:00写道: > >> >> > >> > >> >> > >> > > >> >> > >> > > >> >> > >> > > >> >> > >> > There are a few questions I'd like to confirm: > >> >> > >> > 1、Is meta data only a part of plugin's information? > >> >> > >> > 2、In v2.0, Manager-api and Admin-api are independent of each > >> other, > >> >> > >> > right? After checking, the exist API listed by membphis are > >> >> > admin-apis, > >> >> > >> > and currently there are two exist APIs in manger-api > >> >> > >> > `GET /apisix/admin/plugins` to get plugin names list > >> >> > >> > `GET /apisix/admin/schema/plugins/{plugin_name}` to get > specific > >> >> > plugin's > >> >> > >> > schema > >> >> > >> > > >> >> > >> > 在 2020-11-30 20:30:27,"YuanSheng Wang" <[email protected]> > 写道: > >> >> > >> > >exist API list: > >> >> > >> > > /apisix/admin/plugins/list > >> >> > >> > > /apisix/admin/plugins/reload > >> >> > >> > > /apisix/admin/plugins/{plugin_name} > >> >> > >> > > /apisix/admin/plugin_metadata/{plugin_name} > >> >> > >> > > > >> >> > >> > >How about this name? > >> >> > >> > > /apisix/admin/plugins/list_all > >> >> > >> > > > >> >> > >> > > > >> >> > >> > >On Mon, Nov 30, 2020 at 7:43 PM Zexuan Luo < > >> [email protected] > >> >> > > >> >> > >> > wrote: > >> >> > >> > > > >> >> > >> > >> We already have API for plugin_metadata and it is not > related > >> to > >> >> > the > >> >> > >> > plugin > >> >> > >> > >> information. I am afraid there will be some confusion. > >> >> > >> > >> > >> >> > >> > >> YuanSheng Wang <[email protected]> 于2020年11月30日周一 > 下午6:26写道: > >> >> > >> > >> > >> >> > >> > >> > The idea is very good. > >> >> > >> > >> > The response data format is fine to me too. > >> >> > >> > >> > > >> >> > >> > >> > Just small changing(not important): > >> >> > >> > >> > `GET /apisix/admin/plugins/meta_data` > >> >> > >> > >> > change to > >> >> > >> > >> > `GET /apisix/admin/plugins/metadata` > >> >> > >> > >> > > >> >> > >> > >> > > >> >> > >> > >> > On Mon, Nov 30, 2020 at 5:54 PM 刘曦冉 <[email protected] > > > >> >> wrote: > >> >> > >> > >> > > >> >> > >> > >> > > Hi Community: > >> >> > >> > >> > > > >> >> > >> > >> > > > >> >> > >> > >> > > > >> >> > >> > >> > > This discussion originates from issue: > >> >> > >> > >> > > https://github.com/apache/apisix-dashboard/issues/529 > >> >> > >> > >> > > > >> >> > >> > >> > > > >> >> > >> > >> > > Background > >> >> > >> > >> > > Dashboard wants to optimize the UE of config the > plugins. > >> For > >> >> > the > >> >> > >> > >> plugins > >> >> > >> > >> > > such as `key-auth` `prometheus` etc. user only need to > >> >> > >> > enable/disable > >> >> > >> > >> > them > >> >> > >> > >> > > in route or service without any configurations. so it > >> would > >> >> be > >> >> > >> > better > >> >> > >> > >> > that > >> >> > >> > >> > > only show switch for these plugins. > >> >> > >> > >> > > When rendering the plugin page, the FE needs to know > not > >> only > >> >> > the > >> >> > >> > name > >> >> > >> > >> of > >> >> > >> > >> > > the plugins(which have already been returned by `GET > >> >> > >> > >> > > /apisix/admin/plugins`), but also need to know the > >> plugins' > >> >> > schema > >> >> > >> > >> which > >> >> > >> > >> > is > >> >> > >> > >> > > used to judge whether the plugin needs to be config > >> >> > >> > >> > > Solution > >> >> > >> > >> > > Refer to > >> >> > >> > >> > > > >> >> > >> > >> > > >> >> > >> > >> > >> >> > >> > > >> >> > >> > >> >> > > >> >> > >> > https://github.com/apache/apisix-dashboard/issues/529#issuecomment-735641857 > >> >> > >> > >> > > It would be better to create a new API in manger-api, > >> which > >> >> is > >> >> > >> used > >> >> > >> > to > >> >> > >> > >> > > return all the information of the plugins, the ideal > data > >> >> > >> structure > >> >> > >> > is > >> >> > >> > >> as > >> >> > >> > >> > > follows: > >> >> > >> > >> > > ```json > >> >> > >> > >> > > [ > >> >> > >> > >> > > { > >> >> > >> > >> > > "name": "key-auth", > >> >> > >> > >> > > "type": "auth", > >> >> > >> > >> > > "schema": { > >> >> > >> > >> > > .... > >> >> > >> > >> > > } > >> >> > >> > >> > > ...other plugin meta_data > >> >> > >> > >> > > }, > >> >> > >> > >> > > { > >> >> > >> > >> > > ... > >> >> > >> > >> > > } > >> >> > >> > >> > > ] > >> >> > >> > >> > > ``` > >> >> > >> > >> > > And for the API name > >> >> > >> > >> > > Just follow the current convention:as `GET > >> >> > /apisix/admin/plugins` > >> >> > >> > has > >> >> > >> > >> > > already in use for get all plugins names list, so the > new > >> >> name > >> >> > >> > would be > >> >> > >> > >> > > `GET /apisix/admin/plugins/meta_data` to get all > plugins > >> >> > >> > informations > >> >> > >> > >> > list. > >> >> > >> > >> > > When we have a large version change: for a better > Reatful > >> >> way, > >> >> > I > >> >> > >> > perfer > >> >> > >> > >> > > this way: > >> >> > >> > >> > > > >> >> > >> > >> > > >> >> > >> > >> > >> >> > >> > > >> >> > >> > >> >> > > >> >> > >> > https://github.com/apache/apisix-dashboard/issues/849#issuecomment-735338561 > >> >> > >> > >> > > the name would be `GET /api/version/plugins` > >> >> > >> > >> > > > >> >> > >> > >> > > > >> >> > >> > >> > > What do you think? Looking forward to your comments and > >> >> > >> suggestions. > >> >> > >> > >> > > Thanks~! > >> >> > >> > >> > > > >> >> > >> > >> > > > >> >> > >> > >> > > Best wishes > >> >> > >> > >> > > Liuxiran > >> >> > >> > >> > > >> >> > >> > >> > > >> >> > >> > >> > > >> >> > >> > >> > -- > >> >> > >> > >> > > >> >> > >> > >> > *MembPhis* > >> >> > >> > >> > My GitHub: https://github.com/membphis > >> >> > >> > >> > Apache APISIX: https://github.com/apache/apisix > >> >> > >> > >> > > >> >> > >> > >> > >> >> > >> > > > >> >> > >> > > > >> >> > >> > >-- > >> >> > >> > > > >> >> > >> > >*MembPhis* > >> >> > >> > >My GitHub: https://github.com/membphis > >> >> > >> > >Apache APISIX: https://github.com/apache/apisix > >> >> > >> > > >> >> > >> > >> >> > > >> >> > >> >> > >> >> -- > >> >> > >> >> *MembPhis* > >> >> My GitHub: https://github.com/membphis > >> >> Apache APISIX: https://github.com/apache/apisix > >> >> > >> > -- *MembPhis* My GitHub: https://github.com/membphis Apache APISIX: https://github.com/apache/apisix
