Since most of service discovery require a dump method, I think it would be better to implement a common dump method, and use discovery type as an argument. Therefore we don't need to implement a dump method per service discovery.
We can require each service discovery to provide two methods: 1. get all known services 2. get the data according to the service. 聂永 <[email protected]> 于2021年2月2日周二 上午10:11写道: > The discovery has many modules, such as eureka,consul_kv,etcd_kv, and so > on . > > The modules api URI template should have a good structure: > > /v1/discovery/<discovery_type>/<service_name> > > > So, the http api URI path = > The fixed prefix: /v1/discovery/ + defined discovery_type in yaml (eg: > eureka) + defined uris(eg: /dump) > > My discovery_type is consul_kv, the consul_kv’s control api: > > function _M.control_api() > return { > { > methods = {"GET"}, > uris = {"/dump"}, > handler = dump_info > }, > { > methods = {"PUT"}, > uris = {"/update_kv"}, > handler = update_info > } > } > end > > > eg: > > * /v1/discovery/consul_kv/dump > * /v1/discovery/consul_kv/update_kv > > We maybe need another discovery module in future, as consul_service, we > maybe need export the debugging api below: > > * /v1/discovery/consul_service/view_all_services > > What do you think ? > > > 2021年2月1日 10:49,Zexuan Luo <[email protected]<mailto: > [email protected]>> 写道: > > I am confused by the ` defined uris(eg: `/dump`)` part. Why should we need > another part for the uri? > Why not use `v1/discovery/dump`? > > 聂永 <[email protected]<mailto:[email protected]>> 于2021年2月1日周一 > 上午9:53写道: > > Hi, > > We don't need hardcode for discovery module's control api path. > > The real http api path = > The fixed prefix: `/v1/discovery/` + defined `discovery_type` in yaml (eg: > `eureka`) + defined uris(eg: `/dump`) > > > 2021年1月29日 22:13,Zexuan Luo <[email protected]<mailto: > [email protected]><mailto: > [email protected]<mailto:[email protected]>>> 写道: > > discovery typ > > > >
