Hi, community, recently, there has been a growing call from the community for a detailed tutorial on plugin development[1].
Many users of APISIX do not know what the correct way when writing their own plugins. Now that APISIX has accumulated quite a stable collection of functions in its core module, I would like to show how to use these functions through documentation. Here is an example: -------------------------------------- ### core.id.get **syntax:** apisix_id = core.id.get() **context:** init, rewrite, access, body_filter, header_filter, log **code example:** ```lua local core = require "apisix.core" function _M.access(conf, ctx) local apisix_id = core.id.get() ngx.log(ngx.WARN, "apisix_id: ", apisix_id) end ``` **description:** During the init phase of APISIX, the instance ID will be generated in the following order: 1. read the instance id from `conf/apisix.uid`, use if present; 2. read the instance id from `conf/config.yml`, use if present, configure example: ``` apisix: id: "your-meaningful-id" ``` 3. generate a uuid as the instance id. If you want to specify a meaningful id to bind Apache APISIX instance to your internal system, you can refer to step 2. -------------------------------------- I hope to achieve the following three objectives with this document 1. to organize the functions of the core module 2. show more APISIX logic and usage tips in the relevant function descriptions 3. become a plugin development manual This will be an ongoing process and I'm happy to get started on it. I look forward to having more community members join in, it's a great way to learn about APISIX. link: [1]: https://github.com/apache/apisix/discussions/5421 *ZhengSong Tu* My GitHub: https://github.com/tzssangglass Apache APISIX: https://github.com/apache/apisix