## apache/apisix — v0.4…v0.4.1

_106 commits._

### Features
- **optimize: returns a fetch function when creating a new `lrucache` object,    which can be used directly to get cached data. (#66)** (10e63c6)
- **bugfix: add err handle for obj cache. (#56)** (3ddb972)
- **doc: add doc for limit count.  (#52)** (e822ac0)
- **doc: add more docs for Chinese. (#50)** (575727f)

### Fixes
- **bug: not cache rapidjson schema doc object. (#119)** (91b4d76)
- **doc: fix** (7afc738)

### Backend
- **feature: added test cases about round-robin load balance algorithms. (#123)** (c02d44f)
- **bugfix: got route id from url if not found in post body. (#120)** (e1d0bb0)
- **makefile: installed `admin` lua folder.** (dc12e8d)
- **travis: skipped the test case when install `test::nginx` library. (#117)** (3eb2f3e)
- **feature: used json schema to check the configuration of 	`limit-count` plugin. (#116)** (a4634da)
- **doc: added section `Install APISIX Development Environment`. (#115)** (d4bbd7d)
- **feature: checked the upstream id in route or service. (#114)** (3ca005e)
- **feature: used schema to check the upstream configuration.** (33e78fd)
- **feature: use schema check for service configuration.** (1921ea8)
- **feature: supported to load the dependencies library in apisix** (77fdaaa)
- **optmize: reused a Lua table of plugins. feature: supported to check the Lua source by command `make check`. (#108)** (fee7ec5)
- **feature: supported to install all of the dependencies library to** (3a709c7)
- **bugfix: returned 404 response if the service is not existing. (#107)** (dae069d)
- **feature: supported to fetch all of dependencies library to `deps` folder.** (c3490ce)
- **feature: used schema to check the upstream configuration in etcd. (#105)** (16f5f27)
- **doc: added image for apisix. (#106)** (379a6eb)
- **feature: returned 502 if there is no any valid upstream. (#100)** (32110ae)
- **feature: the minimum is 1 if the route id is integer.** (180cca7)
- **feature: checked the id of route.** (7a60149)
- **bugfix: checked the service id if it is valid.** (a07894e)
- **bugfix: return directly if failed to fetch service attribute by** (09cd32e)
- **makefile: create temporary dir for core file of apisix.** (66b3408)
- **bugfix: added the plugin load. (#95)** (ba57698)
- **doc: fixed typo of doc. (#94)** (17a4f3c)
- **feature: used schema to check the etcd data if it is valid. (#91)** (f270c6f)
- **bugfix: only accept client IP as key now.  (#85)** (1602268)
- **git: added ignore file.** (e27195c)
- **feature: changed plugin_config to plugins. (#84)** (c6e69cb)
- **feature: added schema check for plugins.** (fd8618e)
- **Update README.md** (2a4a57a)
- **Update README_CN.md** (fad1740)
- **doc: added white paper. (#83)** (6cb541e)
- **feature: implemented routes API for admin user, allowed user to manage route. (#79)** (8cfd7d4)
- **doc: supported consistent hash for dynamic load balancing.** (9471bcf)
- **feature: supported to cache non-table Lua object by `lrucache` library. (#80)** (17fecb3)
- **change: updated the internal version to v0.5-beta.** (48e9312)
- **optimize: used `lru` way to cache the validator object for schema. (#77)** (463e560)
- **feature: implemented plugin `limit-conn`. (#75)** (0bac20f)
- **luarocks: used branch `master` for version 0.5 now.** (a25c55b)
- **makefile: added default section.** (73640f9)
- **feature: supported consistent hash for dynamic load balancing. (#69)** (45e2819)
- **bugfix: supported for the json library encoding `cdata` type.** (a66c393)
- **optimize: reduced the similar code.** (6fbb06e)
- **bugfix: used smaller timeout for etcd, avoided socket leak.** (16e5b64)
- **feature: added rapidjson for schema validation.  (#67)** (1737fb7)
- **doc: fixed wrong typo.** (ff51c42)
- **change: added a global swith to control if enable the feature heartbeat.** (a41d54a)
- **feature: generated an uuid for each apisix instance, and this uuid will** (d5fa059)
- **change: used `GET` method to report information.** (2e318e5)
- **optimize: implemented `delay_encode` for `json` component, encoding is** (931c6e9)
- **feature: implemented heartbeat mechanism.** (6336f4b)
- **doc: added `dynamic load balancing` section.** (8a9cc1e)
- **doc: added the openresty version info.** (a5a2ff3)
- **doc: added short description for each plugin.** (2d5221a)
- **doc key-auth: style.** (a6d69a2)
- **feature: implemented `consumer` and `key-auth` plugin.** (abbf95d)
- **doc: fixed Chinese doc. (#58)** (4dab035)
- **Update benchmark.md** (9aeccbf)
- **Update README.md** (77c11e1)
- **doc: fixed readme. (#57)** (4f482b0)
- **doc: chinese.** (afc8dc2)
- **doc: limited the picture size if it's small (#55)** (ccba5da)
- **bugfix: removed `rewrite` phase.** (b62b22a)
- **optimize: merged phase `rewrite` and `access`, make it faster.** (fe22428)
- **doc: text.** (1022af5)
- **doc: used Chinese link name for CN document.** (c43cbb2)
- **doc: fixed the wrong link.** (c08a66b)
- **doc: added more section for plugin prometheus.** (56130f6)
- **doc: added document of plugin prometheus.** (8b55894)
- **doc: changed the title of back link.** (faa6f70)
- **doc: name style, `APISIX` to `apisix`.** (7ec4b28)
- **doc: changed the title.** (87fe9ec)
- **doc: updated the image path.** (e0abc88)
- **doc: created a single doc `architecture-design.md`.** (e3af341)
- **optimize: avoided to generate temporary Lua table.** (656b870)
- **makefile: made it more simple.** (40bf93a)
- **bugfix: used a single option as the apisix configuration prefix name.** (8cea2c6)
- **plugin `key-auth`: added notice context.** (80dc33e)
- **doc: added how to use `upstream`.** (d986229)
- **doc: added how to use `service`.** (9290af2)
- **doc: how to use apisix.** (f2195a5)
- **Update README.md** (4c0a37b)
- **doc: added return anchor.** (14b5691)
- **doc: used the table to display the supported system.** (a042249)
- **doc: base on openresty and etcd.** (35623d3)

### Tests
- **test: added test cases for key-auth using admin API. (#121)** (7b54aaa)
- **test: added test cases for prometheus plugin. (#122)** (371be03)
- **test: missing `no_shuffle()` in `node/sanity.t` test case and added** (5a96615)
- **test: grep all of the error log and check it. (#109)** (31cfc14)
- **test: added more test cases about the schema of route.** (5db7941)
- **test: check the service config with `json schema` after fetched it form etcd. (#96)** (f560316)
- **test: added a fully test case for gateway node. (#90)** (2ebc2ce)
- **test: renamed test cases.** (9ee2856)
- **test: moved the different test file to different folder.** (10a0fb0)
- **test: checked the error log if it contains `error` level log.** (c86e778)
- **test: added test case about `core.id` and `core.utils` library.** (0ab3e53)
- **test: added test case for `core/timer` library.** (884120f)
- **test: checked the error log.** (c9d0879)
- **test: added tests for `core/json` library.** (ea5353a)

### Chore
- **CI: added luacheck in CI. (#68)** (9b90172)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/apache/apisix?utm_source=github-action)._