On Wed, Nov 6, 2019 at 11:06 AM Ming Wen <[email protected]> wrote:

> PATCH + `nodes?merge=partial` also needs to deal with duplicate nodes.
> `merge=partial` is hardly understandable for me.
>

Any other suggestions?


>
> Thanks,
> Ming Wen, Apache APISIX
> Twitter: _WenMing
>
>
> YuanSheng Wang <[email protected]> 于2019年11月6日周三 上午11:00写道:
>
> > On Wed, Nov 6, 2019 at 10:54 AM Ming Wen <[email protected]> wrote:
> >
> > > how about POST + `nodes/node`, like this:
> > > curl http://****/apisix/admin/upstreams/1/nodes/node -X POST \
> > >         -d '{"127.0.0.1:8081":3}'
> > >
> >
> > The POST method usually means inserting things, and if there is the same
> > item in the existing node list, it should not be inserted again.
> >
> > That's why I finally choose the PATCH method.
> >
> >
> > >
> > > and we can remove one node easier.
> > >
> > > Thanks,
> > > Ming Wen, Apache APISIX
> > > Twitter: _WenMing
> > >
> > >
> > > YuanSheng Wang <[email protected]> 于2019年11月6日周三 上午10:14写道:
> > >
> > > > Hi:
> > > >
> > > > For the upstream node list, we should allow new nodes to be added to
> it
> > > via
> > > > Admin API.
> > > > Users only need to provide new node information.
> > > >
> > > > I think we can use PATCH + uri, with an extra parameter to indicate
> the
> > > > data merge method: full replacement or partial modification.
> > > >
> > > > Here is an example:
> > > >
> > > > *Old data:*
> > > >
> > > >     {
> > > >         "nodes": {
> > > >             "127.0.0.1:8080": 1
> > > >         },
> > > >         "type": "roundrobin",
> > > >         "desc": "new upstream"
> > > >     }
> > > >
> > > > *Add new node:*
> > > >
> > > >     curl http://****/apisix/admin/upstreams/1/nodes?merge=partial -X
> > > > PATCH \
> > > >         -d '{"127.0.0.1:8081":3}'
> > > >
> > > > *Current data:*
> > > >
> > > >     {
> > > >         "nodes": {
> > > >             "127.0.0.1:8080": 1,
> > > >             "127.0.0.1:8081": 3
> > > >         },
> > > >         "type": "roundrobin",
> > > >         "desc": "new upstream"
> > > >     }
> > > >
> > > >
> > > > --
> > > > *MembPhis*
> > > > My github: https://github.com/membphis
> > > > Apache APISIX: https://github.com/apache/incubator-apisix
> > > >
> > >
> >
> >
> > --
> >
> > *MembPhis*
> > My github: https://github.com/membphis
> > Apache APISIX: https://github.com/apache/incubator-apisix
> >
>


-- 

*MembPhis*
My github: https://github.com/membphis
Apache APISIX: https://github.com/apache/incubator-apisix

Reply via email to