Using Boolean values, although simple and clear, but can only express two states.
Perhaps it is more flexible to use strings here. On Sun, Sep 27, 2020 at 12:00 PM JunXu Chen <[email protected]> wrote: > @Yuansheng > > The 4sd step should be : > > 4. Release the route > ``` > $ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H'X-API-KEY: > edd1c9f034335f136f87ad84b625c8f1'-X PATCH -i -d' > { > "enable": true > }' > ``` > > Thanks! > > On Sun, Sep 27, 2020 at 11:41 AM YuanSheng Wang <[email protected]> > wrote: > > > > but I forgot to change it in the example > > > > Please provide the correct example, I am also confused by the current > > example. > > > > ^_^ > > > > > > On Sun, Sep 27, 2020 at 11:02 AM JunXu Chen <[email protected]> > wrote: > > > > > @Zhiyuan > > > 1. disabled could be used as an option > > > 2. I originally used two fields `status` and `enable` for choosing, but > > to > > > avoid confusion, I deleted `status`, but I forgot to change it in the > > > example > > > > > > Thanks! > > > > > > On Sun, Sep 27, 2020 at 9:31 AM Ming Wen <[email protected]> wrote: > > > > > > > I have a concern. The debug/disabled state routera are also in the > > > > production system. If there is a bug, it will be very serious. > > > > > > > > Thanks, > > > > Ming Wen, Apache APISIX & Apache SkyWalking > > > > Twitter: _WenMing > > > > > > > > > > > > JunXu Chen <[email protected]> 于2020年9月26日周六 下午11:50写道: > > > > > > > > > Hi, community, > > > > > > > > > > @liuxiran previously submitted a nice PR that implements route > > publish > > > > and > > > > > offline feature [1]. > > > > > > > > > > We hope that instead of releasing a route immediately, we can test > it > > > > > first, and release it after the test result is OK. > > > > > > > > > > So we think it is more suitable to implement this feature directly > in > > > > > `Apache APISIX` instead of dashboard. > > > > > > > > > > Here is the implementation steps in my mind: > > > > > > > > > > 1. Add an `enable` field, or another more suitable field to the > route > > > > > configuration, and the default value of the field is false when > > adding > > > a > > > > > route. Which means the route is not released. > > > > > > > > > > 2. Add a matching item `enable` similar to `host` or `method` in > the > > > > > `lua-resty-radixtree` library. > > > > > When matching a route for client request, If the value of `enable` > is > > > > > false, skip the route directly. > > > > > But when there is `X-APISIX-ROUTE-DEBUG` in the http header and the > > > value > > > > > is true, routes which `enable` are false can be matched according > to > > > > other > > > > > conditions. > > > > > > > > > > 3. Now, normal client requests will skip routes not released, and > > > > requests > > > > > for testing by specifying the http header `X-APISIX-ROUTE-DEBUG` > can > > > > match > > > > > routes not released, thus realizing our needs. > > > > > > > > > > Example: > > > > > > > > > > 1. Create a route (it's not released by default) > > > > > > > > > > ```shell > > > > > $ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H'X-API-KEY: > > > > > edd1c9f034335f136f87ad84b625c8f1'-X PUT -i -d' > > > > > { > > > > > "Uri": "/route-debug-test", > > > > > "Upstream": { > > > > > "Type": "roundrobin", > > > > > "node":{ > > > > > "127.0.0.1:80": 1 > > > > > } > > > > > } > > > > > }' > > > > > ``` > > > > > 2. Normal request (404 not found) > > > > > ``` > > > > > curl 127.0.0.1:9080/route-debug-test > > > > > ``` > > > > > > > > > > 3. Debugging (200) > > > > > ``` > > > > > curl 127.0.0.1:9080/route-debug-test -H "X-APISIX-ROUTE-DEBUG: > true" > > > > > ``` > > > > > > > > > > 4. Release the route > > > > > ``` > > > > > $ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H'X-API-KEY: > > > > > edd1c9f034335f136f87ad84b625c8f1'-X PATCH -i -d' > > > > > { > > > > > "Status": 0 > > > > > }' > > > > > ``` > > > > > > > > > > 5. Normal access (200) > > > > > ``` > > > > > curl 127.0.0.1:9080/route-debug-test > > > > > ``` > > > > > > > > > > > > > > > [1] https://github.com/apache/apisix-dashboard/pull/451 > > > > > > > > > > > > > > > > > > -- > > > > *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
