Commit Graph

294 Commits

Author SHA1 Message Date
贝克
7d33fb66bc bugfix: key-auth plugin cannot run accurately in the case of multiple consumers (#826) 2019-11-10 21:50:57 +08:00
罗泽轩
b7e280033b fix: core.utils.parse_addr didn't parse IPv6 address correctly (#809) 2019-11-06 14:27:08 +08:00
罗泽轩
b67f99b265 chore: fixed typo detected by misspell (#801) 2019-11-05 10:58:04 +08:00
YuanSheng Wang
7c51f6da00 updated jsonschema to v0.4. (#805)
* updated jsonschema to v0.4.

* test: fixed typo.
2019-11-05 10:33:36 +08:00
YuanSheng Wang
ecd4a57a24 test: reformatted by reindex tools. (#798) 2019-11-04 14:14:07 +08:00
Lien
b91d2d36c0 Fix: allow set multiple URI in one route config (#797)
* route support uris

* fix uris in router with test cases

* remove line has trailing whitespace

* remove line has trailing whitespace

* fix test case

* use new test case for  multiple uris
2019-11-04 14:00:52 +08:00
lyyoung
89688d32ad plugin(prometheus): added new field node and new item latency. (#794) 2019-11-03 21:11:52 +08:00
Lien
b119a5c94b bugfix: support more built-in parameters when set chash balancer (#775) 2019-11-03 18:25:51 +08:00
YuanSheng Wang
4ee11806de
travis: supported to run APISIX with Tengine. (#683) 2019-11-02 09:05:38 +08:00
YuanSheng Wang
a1c56ceb53 bugfix: skipped to init etcd if use local file as config center. (#737) 2019-11-02 07:59:59 +08:00
YuanSheng Wang
d112c97a61
bugfix: exported schema for plugin serverless. (#787) 2019-11-01 22:32:19 +08:00
YuanSheng Wang
5c0cb17a6b
ASF: added license header. (#781) 2019-11-01 11:22:49 +08:00
nic-chen
243346a668 featutre: support gRPC proxy #691) 2019-11-01 10:09:01 +08:00
YuanSheng Wang
ad376f83f8
change: updated resty-radixtree to v1.5. (#768)
* feature: supported userdefine lua function in router `radixtree_uri`.
* feature: supported userdefine lua function in router `radixtree_host_uri`.
2019-11-01 09:49:09 +08:00
bobopan
3930456dcc test case: added test cases for upstream priority. (#774) 2019-11-01 09:46:05 +08:00
WenMing
b3fb7ae1f1
license: ingore grpc_server_example dir for check license. (#770) 2019-10-31 10:55:21 +08:00
YuanSheng Wang
da853702d6 feature: supported redirect plugin. (#732) 2019-10-31 10:19:22 +08:00
WenMing
12a2b01b71
license: add ASF header. (#743) 2019-10-31 09:27:28 +08:00
jackstraw
de1492911e bugfix: fix the wrong "method" restriction in plugin's inner api. 2019-10-30 10:41:14 +08:00
YuanSheng Wang
d6c4407921 doc: make installation steps clear and remove useless dependency installations (#729) 2019-10-23 15:27:20 +08:00
YuanSheng Wang
d8b0c2d04c change: removed router r3. (#725) 2019-10-23 12:59:22 +08:00
YuanSheng Wang
d06fbfa13c change: used lua-resty-jsonschema instead of lua-rapidjson. (#703) 2019-10-23 12:58:10 +08:00
YuanSheng Wang
ae8cd02cce plugin(limit-count): put the redis configuration to root directory. (#727) 2019-10-23 12:54:05 +08:00
WenMing
be49cfcc19 feature: support remove header in rewrite plugin. (#692)
* feature: support remove header in rewrite plugin.

fixed https://github.com/iresty/apisix/issues/658
2019-10-15 16:06:28 +08:00
fc13240@gmail.com
f22b0e0d52 bugfix: increase maxLength of certificate (#682) 2019-10-12 16:14:50 +08:00
YuanSheng Wang
9074a8a3b8
feature: support for host + uri as an index (radixtree) (#671) 2019-10-12 14:24:34 +08:00
YuanSheng Wang
0e10fa6c68
feature: enabled HTTP2 and supported to set ssl_protocols. (#663)
* feature: enabled HTTP2 and supported to set `ssl_protocols`.
* bugfix: used default certificate if failed to load certificate by SNI.

Fix #595.
2019-10-10 22:28:58 +08:00
Janko
ff0d82c40c bugfix: keep args of uri when using proxy-write plugin. (#642) 2019-10-09 16:02:38 +08:00
Janko
91ee8e1000 feature: added request headers rewriting in proxy-rewrite plugin (#629) 2019-10-09 15:10:16 +08:00
YuanSheng Wang
d05fcc6854
feature: supported to print the input parameters and return values of… (#641)
* feature: supported to print the input parameters and return values of the specified function for debugging.
2019-10-09 11:26:54 +08:00
YuanSheng Wang
6b875cec33
feature(limit-count): supported global limit count with redis server. (#624) 2019-10-08 13:15:48 +08:00
Janko
d91be43a4f change: remove options hosturischemaenable_websocket of upstream object (#621)
we can rewrite new proxy option by plugin `proxy-rewrite`.
2019-09-27 19:29:59 +08:00
YuanSheng Wang
ec058fe543
feature: added new admin api /admin/node_status. (#617)
* feature: added new admin api `/admin/node_status`.
2019-09-27 19:11:37 +08:00
YuanSheng Wang
d2f891fc51
plugin(proxy-rewrite): added more test cases. (#615)
* plugin(proxy-rewrite): added more test cases.
* bugfix: host of upstream should not support wildcard domain.
2019-09-27 15:57:04 +08:00
Janko
25fd6983ea feature(plugin): rewrite upstream info with plugin proxy-rewrite (#594)
* test: add `proxy-rewrite` plugin test cases
2019-09-27 15:14:48 +08:00
YuanSheng Wang
91e54ab305
change: exported remote_addr def and host_def schema definition. (#610)
* change: exported `remote_addr def` and `host_def` schema definition.
* bugfix: allow uppercase letters in IPv6.
2019-09-27 04:22:26 +08:00
YuanSheng Wang
3f700c5dc1
doc(admin api): route. (#593)
feature: supported new fields hosts, remote_addrs and vars for router.

fix: #592
2019-09-26 17:47:08 +08:00
YuanSheng Wang
4bb9e6ecb9
test: added new test case about https://github.com/iresty/apisix/pull/586. (#587)
* test: added test cases.
2019-09-24 18:26:43 +08:00
Yuansheng
097bcde2fe change: used resty-matcher to match ip address, which support IPv6. 2019-09-23 12:24:12 +08:00
YuanSheng Wang
de3c95da21
feature: support consumer bind plugins. (#544)
* feature: saved consumer plugin information.
* feature: supported to merge plugin with consumer and route.
2019-09-22 06:05:58 +08:00
YuanSheng Wang
894fa584e0
feature: supported to use host name in upstream (#522)
* feature: supported to config resolver in yaml config file.

* feature: supported domain host for upstream node
2019-09-18 17:41:44 +08:00
YuanSheng Wang
681a42cbed
feature: support upstream nodes with a weight of 0. (#536)
* test: added test cases.

* doc: updated doc.

current implementation is enough, it supports weight equal 0 now.
2019-09-18 12:00:53 +08:00
Carlos Hwang
c0a1363e6e feature: support http method 'connect' & 'trace' (#530) 2019-09-17 16:57:51 +08:00
YuanSheng Wang
c080f6cc66
doc: added new example to stream-proxy. (#520)
* doc: added new example to `stream-proxy`.
* doc: new doc about `mqtt-proxy`.
2019-09-16 13:03:26 +08:00
YuanSheng Wang
ad2b67ee81
feature: supported to added pluings to stream routes. (#513)
* feature: supported to added pluings to stream routes.
* feature: supported MQTT protocol.
2019-09-16 10:58:27 +08:00
YuanSheng Wang
4aaaf3ee5a
feature: support dynamic stream(TCP/UDP) proxy in apisix. (#501)
* feature: support stream in apisix.
* doc: added new feature in README.
* CLI and added more doc.
2019-09-12 13:27:18 +08:00
Yuansheng
14d5a38fc3 test: renamed base component. 2019-09-10 16:15:59 +08:00
YuanSheng Wang
912685c818
feature: supported to save/delete/change global rule. (#492)
* feature: supported to load and run global rule.
2019-09-10 15:27:40 +08:00
Yuansheng
4bb40df857 change(test): name style. 2019-09-10 10:07:29 +08:00
YuanSheng Wang
d8d7f018dc
feature: support to load routes from local yaml file. (#464)
* feature: support to load routes from local yaml file.
2019-09-09 17:42:20 +08:00
YuanSheng Wang
af3454c6ee
change: updated component lua-resty-radixtree to v0.7 and updated test (#470)
* change: updated component `lua-resty-radixtree` to v0.7 and updated test
  cases.
2019-09-05 17:23:06 +08:00
WenMing
9ff30c7596 test case: changed savestepsize of luacov from 100 to 10. 2019-09-03 14:30:13 +08:00
Yuansheng
9ff1d3fd44 feature: supported to filter route by Nginx variable for router radixtree_uri. 2019-09-02 15:31:21 +08:00
WenMing
f7c04747d5
feature: implemented openid-connect plugin. (#447) 2019-08-30 19:49:45 +08:00
YuanSheng Wang
ad98a2bfdb
feature: supported to set more upstream options. (#451)
* feature: supported to set more upstream options.
* feature: supported to enable websocket for upstream.
2019-08-30 10:15:58 +08:00
YuanSheng Wang
124a49f267
feature: supported to fetch cookie value from ctx.var which is a easy way. (#449)
* feature: supported to fetch cookie value from ctx.var which is a easy way.
2019-08-29 15:45:53 +08:00
YuanSheng Wang
c32da7c9db feature: support more key for limit-rate, limit-count, limit-conn (#444) 2019-08-27 18:29:42 +08:00
WenMing
1e7f66a428
test case: added doc and more test cases for serverless. (#439) 2019-08-26 13:10:15 +08:00
WenMing
816048338b
feature: added serverless plugins. (#86) 2019-08-26 10:37:36 +08:00
nic-chen
e0b5b7d7d7 test(grpc-transcode): added more test case (#435).
* fix doc
2019-08-24 09:13:52 +08:00
YuanSheng Wang
1002765831
feature: support to match IPv6 request. (#341)
* CLI: supported to listen IPv6.

* feature: supported to match route by remote address.
2019-08-24 09:10:11 +08:00
YuanSheng Wang
94d22c04d3
bugfix(grpc-transcode): checked the response code first. (#433)
* bugfix(grpc-transcode): checked the response code first.
2019-08-23 07:30:39 +08:00
Yuansheng
1108ea786b change: renamed plugin grpc-proxy to grpc-transcode. 2019-08-22 14:57:02 +08:00
nic-chen
e46e8f2130 * feature: support grpc-proxy REST <-> gRPC case. (#410) 2019-08-21 23:10:34 +08:00
Yuansheng
6963fbb6c0 feature: added new API /apisix/admin/plugins/reload to hot reload plugin. 2019-08-20 22:25:11 +08:00
YuanSheng Wang
275cfa8c73
change(router): use radixtree_sni as default SSL router. (#419)
* change(router): use `radixtree_sni` as default SSL router.

* change(route): use `radixtree_uri` as default HTTP(S) router.

* luarocks: removed `lua-resty-libr3` component by default.
2019-08-20 22:07:59 +08:00
YuanSheng Wang
56ca3645eb
feature(router): implemented new SNI router radixtree_sni, and change (#418)
* feature(router): implemented new SNI router `radixtree_sni`, and change
  default router to `radixtree_uri` and `radixtree_sni`.

* optimize: avoided one lrucache call.
2019-08-20 13:03:25 +08:00
Yuansheng
ad1951cb0e bug(luacov): added new lua folder. 2019-08-20 11:46:27 +08:00
YuanSheng Wang
560a3115a1
bugfix: avoided to cover the original service configuration. (#416)
* bugfix: avoided to cover the original service configuration.
2019-08-19 15:26:38 +08:00
YuanSheng Wang
59da5e78e5
bugfix: stop the checker if the config source is changed. (#406)
* bugfix: stop the checker if the config source is changed.

* test: added new test cases.
2019-08-19 14:02:33 +08:00
chnliyong
f26f8ba6da feature: added IPv4 whitelist/blacklist plugin ip-restriction (#398) 2019-08-19 13:59:47 +08:00
YuanSheng Wang
d930b7b122
bugfix: allowed to use more limit key. (#413)
* bugfix: allowed to use more limit key.

Fix #412.
2019-08-19 13:35:16 +08:00
Yuansheng
a9898cb6a7 feature(plugin): added new option server_addr for limit key. 2019-08-18 08:07:16 +08:00
YuanSheng Wang
1ef5828090
feature: supported to use router lua-resty-radixtree. (#391)
* feature: supported new router `lua-resty-radixtree`.

* change(nginx.conf): sync from CLI.
2019-08-12 09:04:41 +08:00
WenMing
ffc71f529c
plugins: removed example-plugin from yaml configure. (#383) 2019-08-07 16:35:45 +08:00
YuanSheng Wang
926c3386e0
feature: add new option release, will release it automatically (#381)
* feature: add new option `release`, will release it automatically
  when cached item is useless.
2019-08-07 13:42:48 +08:00
Yuansheng
ea7099b410 feature: supported PATCH method for upstream API. 2019-08-05 13:26:16 +08:00
YuanSheng Wang
4850f91e82
feature: supported PATCH method for service API. (#370)
* feature: supported `PATCH` method for `service` API.
2019-08-05 12:51:21 +08:00
Yuansheng
77e5b50591 feature: supported to patch whole route content. 2019-08-05 00:04:42 +08:00
Yuansheng
19e09b539f feature: supported PATCH method for admin routes API. 2019-08-05 00:04:42 +08:00
Yuansheng
1ce988346a optimize(router): used local cache variable to avoid one lrucache call. 2019-08-04 23:20:55 +08:00
Yuansheng
66ac7ed200 doc(architecture): added new doc about router. 2019-08-04 23:20:55 +08:00
Yuansheng
3bc0d64b49 feature: supported to match route by host + uri. 2019-08-04 23:20:55 +08:00
Yuansheng
e4a9299b05 test(healthcheck): only match part error log, it is enough. 2019-08-04 15:06:14 +08:00
Yuansheng
7deeafa356 test: use smaller connection and change to short connection. 2019-08-02 21:51:58 +08:00
YuanSheng Wang
7e36cf5b9e
bugfix: failed to fetch upstream id in balancer phase. (#356)
* bugfix: failed to fetch upstream id in `balancer` phase.
* bugfix: cached `route` object maybe not a Lua table.
2019-08-02 16:29:00 +08:00
Yuansheng
884c97b67a bugfix: allowed to serialise Lua table if it is excessive nesting. 2019-08-01 11:30:14 +08:00
YuanSheng Wang
b8fd0da486
feature: allow user to define how to create route index. (#325) 2019-07-28 19:37:31 +08:00
YuanSheng Wang
011e0eff5d
test: use a simple way to write test case. (#323)
* test: avoid duplicate code and make test cases clearer.
2019-07-28 11:10:30 +08:00
chnliyong
38b5d6d3d9 add health check json schema constraint and test cases. issue#266 2019-07-28 10:28:13 +08:00
YuanSheng Wang
04129add27
feature: supported debug mode. (#319)
* feature: supported debug mode.

print the plugin list which sort by priority.

* feature: show the enabled plugin list in header for debug mode.
2019-07-27 09:10:06 +08:00
WenMing
148bc4068b
feature: supported zipkin plugin. (#304) 2019-07-26 17:16:31 +08:00
Yuansheng
3b263fe2ee test: change the block code to smaller size. 2019-07-25 17:08:29 +08:00
Yuansheng
873192c033 test(route): added new test cases. 2019-07-25 17:08:29 +08:00
Yuansheng
7d5237c3ca test(healthcheck): ignore the error log which contain process exiting. 2019-07-25 13:45:49 +08:00
Yuansheng
efadc91c03 feature: supported JWT plugin and added test cases. 2019-07-25 00:17:24 +08:00
YuanSheng Wang
02f66d4cc4
feature: allow plugins to handler balance phase. (#299)
*  feature: allow plugins to handler balance phase.
2019-07-24 09:01:06 +08:00
Yuansheng
f44b49105e test: fixed case under OSX. 2019-07-22 14:13:05 +08:00
YuanSheng Wang
526e0cb70c
feature(balancer): supported to set retries and timeouts, and set upstream node status by passive health check. (#288)
* feature(balancer): supported to set retries and timeouts, and set
  upstream node status by passive health check.
2019-07-22 11:27:30 +08:00
WenMing
e6bc0040c1
feature: added desc for upstream and service in schema. (#289) 2019-07-22 10:42:02 +08:00
YuanSheng Wang
398579e511
schema(healthcheck): added the passive definition to schema. (#285) 2019-07-21 22:52:52 +08:00
YuanSheng Wang
56a8b152b7
schema: added more valid method. (#287)
* schema: added more valid method.
2019-07-21 22:39:07 +08:00
YuanSheng Wang
5e119c4828
luarocks: added new dependency lua-resty-healthcheck. (#249)
* luarocks: added new dependencies `lua-resty-healthcheck` and `lua-resty-worker-event`.

* feature(balancer): fetched health node from upstream nodes in balancer phase when enabled 
  healthcheck.
2019-07-17 23:52:15 +08:00
YuanSheng Wang
049014596b
test(APISIX.pm): added new cpath. change: updated nginx.conf. (#247)
* test(APISIX.pm): added new `cpath`.
* change: updated nginx.conf.
2019-07-15 08:24:35 +08:00
YuanSheng Wang
7cf243cdf9
change: code style + added local cache. (#241)
* change: code style + added local cache.
* luacov: added new path `lua/apisix/http/*`.
2019-07-12 19:08:59 +08:00
WenMing
9fa04a923c
feature: supported real_ip configure in nginx.conf and added functions to get ip and remote ip. (#236)
* feature: supported real_ip configure in nginx.conf and added functions to get ip and remote ip.

* fixed code style.
2019-07-12 11:25:17 +08:00
YuanSheng Wang
ccd179a936
travis: used different compiler to run test. (#235)
* travis: specified language.
* test: added test cases for `core.table`.
2019-07-12 11:11:24 +08:00
Yuansheng
b88de3975a test: added more test case for local config. 2019-07-12 10:40:45 +08:00
Yuansheng
9513e3d37c change: moved service and ssl source file to http folder. 2019-07-12 10:40:45 +08:00
WenMing
f62a2be238
feature: added luacov and coveralls. (#192) 2019-07-03 15:44:24 +08:00
YuanSheng Wang
a626bde242 bugfix plugin: used config's version as a part of key. (#190) 2019-07-03 11:36:14 +08:00
YuanSheng Wang
85f420977c change: added prefix http_ for http request. (#179) 2019-07-01 17:24:38 +08:00
WenMing
df7afe4f95
feature: added admin API to get plugins' list. (#176) 2019-07-01 13:29:21 +08:00
WenMing
92f019c7a1
feature: added admin API for plugins' schema. (#174) 2019-06-30 22:35:39 +08:00
Yuansheng
9309abaed7 feature: support to fetch the ssl schema. 2019-06-24 18:49:30 -04:00
Yuansheng
1bb135af60 feature: supported for using wildcard to match the SNI of client https
request.
2019-06-24 18:49:30 -04:00
Yuansheng
7dbcea8571 feature: supported to manage ssl item by admin API and HTTPS client request. 2019-06-24 18:49:30 -04:00
WenMing
e43cb2e195
bugfix: fixed test cases for limit conn. (#154) 2019-06-24 17:02:53 +08:00
WenMing
2480171c8c
test: only check part of schema. (#153) 2019-06-24 16:07:24 +08:00
YuanSheng Wang
72e0fe2393
feature: supported to collect nginx status and pushed it to etcd. (#149)
* feature: supported to collect nginx status and pushed it to etcd.
* the return value of the exported api is the same as the other methods in the plugin.
2019-06-22 08:24:02 +08:00
WenMing
c0c5c08644
feature: added admin API to get schema for FE. (#148)
* feature: added admin API to get schema for FE.

* added test cases.

* bugfix
2019-06-21 21:25:24 +08:00
YuanSheng Wang
ca1f5e7b0d
feature: added remote_addr attribute to route. (#142)
* feature: added `remote_addr` attribute to route.
2019-06-21 06:39:47 +08:00
Yuansheng
678e4228a0 feature: supported for using wildcard pattern to match host. 2019-06-20 10:00:07 -04:00
Yuansheng
0f5a80441d test: supported to run test case if the dependency files are installed
to `deps` folder.
2019-06-20 09:18:11 -04:00
WenMing
9ee0d2c173
test: added test cases for limit req. (#136) 2019-06-19 23:52:59 +08:00
WenMing
6af8957f87
feature: added admin api for consumer. (#135) 2019-06-19 19:14:58 +08:00
YuanSheng Wang
36338bc95b
feature: merged the configuration between route and service. (#133)
* feature: merged the configuration between route and service.
2019-06-19 15:51:28 +08:00
YuanSheng Wang
2647bdddcb
test: removed useless option. (#132) 2019-06-19 15:48:16 +08:00
WenMing
a76f690abb
test: added test cases for limit conn and limit count. (#131) 2019-06-19 13:06:03 +08:00
YuanSheng Wang
912e8b106d
feature: supported to match host of client request. (#130) 2019-06-19 12:41:38 +08:00
Yuansheng
c3f3ddb4d4 bugfix: checked if the service or upstream were referenced when user
submit a delete operation.
2019-06-18 17:06:49 +08:00
YuanSheng Wang
43cbd138e7
change: merged the similar code, and not allowed to specify id when use POST method. (#128)
* change: merged the similar code, and not allowed to specify id when use
  POST method.
2019-06-18 16:15:55 +08:00
YuanSheng Wang
61f5f3af2a
bugfix: supported to LRU table to cache the JSON schema validator. (#126) 2019-06-18 11:23:18 +08:00
YuanSheng Wang
c02d44f8e7
feature: added test cases about round-robin load balance algorithms. (#123)
* feature: added test cases about round-robin load balance algorithms.

* feature: added test cases about consistent hash algorithms.
2019-06-17 23:17:41 +08:00
WenMing
7b54aaac16
test: added test cases for key-auth using admin API. (#121) 2019-06-17 22:05:02 +08:00
YuanSheng Wang
371be03810
test: added test cases for prometheus plugin. (#122)
* test: added test cases for prometheus plugin.
2019-06-17 21:08:17 +08:00
WenMing
e1d0bb08ce
bugfix: got route id from url if not found in post body. (#120) 2019-06-17 18:00:56 +08:00
YuanSheng Wang
a4634da49e
feature: used json schema to check the configuration of limit-count plugin. (#116)
* feature: used json schema to check the configuration of
	`limit-count` plugin.
* travis: if there was any errors, exist directly.
2019-06-17 15:05:19 +08:00
YuanSheng Wang
3ca005eb7a
feature: checked the upstream id in route or service. (#114)
* feature: checked the upstream id in route or service.
2019-06-17 11:45:04 +08:00
Yuansheng
33e78fd43b feature: used schema to check the upstream configuration.
Fix #102 .
2019-06-17 09:57:05 +08:00
Yuansheng
1921ea8ba5 feature: use schema check for service configuration.
Fix #111.
2019-06-17 09:08:16 +08:00
Yuansheng
5a966152ba test: missing no_shuffle() in node/sanity.t test case and added
more step information.
2019-06-16 12:33:13 +08:00
YuanSheng Wang
31cfc145bd
test: grep all of the error log and check it. (#109)
* travis: init the etcd server at first.
* test: grep all of the error log and check it.
2019-06-16 09:36:22 +08:00
YuanSheng Wang
fee7ec58ef
optmize: reused a Lua table of plugins. feature: supported to check the Lua source by command make check. (#108)
* optmize: reused a Lua table of plugins.
* feature: supported to check the Lua source by command `make check`.
* bug: reinitialize the prometheus variable each time.
2019-06-16 07:32:25 +08:00
YuanSheng Wang
dae069d51a
bugfix: returned 404 response if the service is not existing. (#107)
* bugfix: returned 404 response if the service is not existing.
2019-06-15 22:34:26 +08:00
YuanSheng Wang
16f5f27c90
feature: used schema to check the upstream configuration in etcd. (#105)
* feature: used schema to check the upstream configuration in etcd.
* change: used Lua table to avoid concat JSON string by manual for schema.
* optimize: changed a smaller wait time, faster way to know if there has new data coming.
2019-06-15 11:49:58 +08:00
YuanSheng Wang
32110aeba0
feature: returned 502 if there is no any valid upstream. (#100)
* feature: returned 502 if there is no any valid upstream.
2019-06-15 08:32:51 +08:00
Yuansheng
180cca723b feature: the minimum is 1 if the route id is integer. 2019-06-15 08:32:28 +08:00
Yuansheng
7a60149b6d feature: checked the id of route. 2019-06-15 07:17:34 +08:00
Yuansheng
a07894e7ac bugfix: checked the service id if it is valid. 2019-06-14 22:55:57 +08:00