Thanks for your awesome proposal. I think the doc could start from how to deploy the development environment, how to run the example plug-in, how to debug, and then introduce how to call APISIX.core, and link up the whole process.
On Fri, 31 Dec 2021 at 18:29, tzssangglass <tzssanggl...@apache.org> wrote: > 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 >