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
>

Reply via email to