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
>

Reply via email to