You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by GitBox <gi...@apache.org> on 2021/09/06 16:29:06 UTC

[GitHub] [apisix-website] shuaijinchao opened a new pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

shuaijinchao opened a new pull request #560:
URL: https://github.com/apache/apisix-website/pull/560


   Changes:
   
   added python helps you quickly with Apache APISIX plugin development blog
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] liuxiran commented on pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
liuxiran commented on pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#issuecomment-913856732


   cc @Serendipity96 @yzeng25 to have a look, thanks


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] netlify[bot] edited a comment on pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
netlify[bot] edited a comment on pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#issuecomment-913760356


   ✔️ Deploy Preview for *apisix* ready!
   
   
   🔨 Explore the source changes: eb7eb19b2a443c0b46db611542014c9c3f587d57
   
   🔍 Inspect the deploy log: [https://app.netlify.com/sites/apisix/deploys/6136ac63b1425200071fb9de](https://app.netlify.com/sites/apisix/deploys/6136ac63b1425200071fb9de?utm_source=github&utm_campaign=bot_dl)
   
   😎 Browse the preview: [https://deploy-preview-560--apisix.netlify.app](https://deploy-preview-560--apisix.netlify.app?utm_source=github&utm_campaign=bot_dp)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] netlify[bot] edited a comment on pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
netlify[bot] edited a comment on pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#issuecomment-913760356


   👷 Deploy Preview for *apisix* processing.
   
   
   🔨 Explore the source changes: 8f92225b03c561372fe69b06f0c1892ed058ad3b
   
   🔍 Inspect the deploy log: [https://app.netlify.com/sites/apisix/deploys/6136441b48a27e000702a07b](https://app.netlify.com/sites/apisix/deploys/6136441b48a27e000702a07b?utm_source=github&utm_campaign=bot_dl)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] Serendipity96 commented on a change in pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
Serendipity96 commented on a change in pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#discussion_r703122761



##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`

Review comment:
       Would you like to add 'Java' and 'Go' articles?
   https://apisix.apache.org/blog/2021/06/21/use-Java-to-write-Apache-APISIX-plugins/
   https://apisix.apache.org/blog/2021/08/19/go-makes-Apache-APISIX-better/




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] netlify[bot] edited a comment on pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
netlify[bot] edited a comment on pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#issuecomment-913760356


   👷 Deploy Preview for *apisix* processing.
   
   
   🔨 Explore the source changes: b116491ca3dca3f1f45e60229d70d4cc099c5274
   
   🔍 Inspect the deploy log: [https://app.netlify.com/sites/apisix/deploys/61364946d07caa0007cb0ed6](https://app.netlify.com/sites/apisix/deploys/61364946d07caa0007cb0ed6?utm_source=github&utm_campaign=bot_dl)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] netlify[bot] edited a comment on pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
netlify[bot] edited a comment on pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#issuecomment-913760356


   ✔️ Deploy Preview for *apisix* ready!
   
   
   🔨 Explore the source changes: 5f6bb399c84603593fa9be11eef219b058ca96f2
   
   🔍 Inspect the deploy log: [https://app.netlify.com/sites/apisix/deploys/613731a12e1cf200088c4689](https://app.netlify.com/sites/apisix/deploys/613731a12e1cf200088c4689?utm_source=github&utm_campaign=bot_dl)
   
   😎 Browse the preview: [https://deploy-preview-560--apisix.netlify.app](https://deploy-preview-560--apisix.netlify.app?utm_source=github&utm_campaign=bot_dp)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] netlify[bot] edited a comment on pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
netlify[bot] edited a comment on pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#issuecomment-913760356


   ✔️ Deploy Preview for *apisix* ready!
   
   
   🔨 Explore the source changes: 6172643f8661ab658fba55d03b9a353aa5e66c7c
   
   🔍 Inspect the deploy log: [https://app.netlify.com/sites/apisix/deploys/613641c343f4930007d297fb](https://app.netlify.com/sites/apisix/deploys/613641c343f4930007d297fb?utm_source=github&utm_campaign=bot_dl)
   
   😎 Browse the preview: [https://deploy-preview-560--apisix.netlify.app](https://deploy-preview-560--apisix.netlify.app?utm_source=github&utm_campaign=bot_dp)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] juzhiyuan merged pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
juzhiyuan merged pull request #560:
URL: https://github.com/apache/apisix-website/pull/560


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] juzhiyuan commented on a change in pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#discussion_r703099839



##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,274 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`
+通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+
+![Apache APISIX work flow](../static/img/blog_img/2021-09-06-1.png)
+
+上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 `apisix-python-plugin-runner` 就是支持 `Python`
+语言的 `Plugin Runner`。
+
+当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin Runner`,该子进程与 `Apache APISIX`
+进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+
+如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+
+- `ext-plugin-pre-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前
+- `ext-plugin-post-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之后
+
+根据需要配置 `Plugin Runner` 的执行时机。
+
+`Plugin Runner` 会处理 `RPC` 调用,在其内部创建一个模拟请求,然后运行多语言编写的插件,并将结果返回给 Apache APISIX。
+
+多语言插件的执行顺序是在 `ext-plugin-*` 插件配置项中定义的,像其他插件一样,它们可以被启用并在运行中重新定义。
+
+## 部署测试
+
+### 基础运行环境
+
+- Apache APISIX 2.7
+- Python 3.6+
+
+`APISIX` 的安装部署本文不在过多赘述可以参照 [文档](https://github.com/apache/apisix/blob/master/docs/en/latest/how-to-build.md) 进行部署。
+
+### 下载安装 Python Runner
+
+```bash
+$ git clone https://github.com/apache/apisix-python-plugin-runner.git
+$ cd apisix-python-plugin-runner
+$ make install
+```
+
+### 配置 Python Runner
+
+#### 开发模式
+
+##### 运行Python Runner
+
+```bash
+$ cd /path/to/apisix-python-plugin-runner
+$ APISIX_LISTEN_ADDRESS=unix:/tmp/runner.sock python3 apisix/main.py start
+```
+
+##### 修改APISIX配置文件
+
+```bash
+$ vim /path/to/apisix/conf/config.yaml
+apisix:
+  admin_key:
+    - name: "admin"
+      key: edd1c9f034335f136f87ad84b625c8f1
+      role: admin
+ext-plugin:
+  path_for_test: /tmp/runner.sock
+```
+
+#### 生产模式
+
+##### 修改APISIX配置文件
+
+```bash
+$ vim /path/to/apisix/conf/config.yaml
+apisix:
+  admin_key:
+    - name: "admin"
+      key: edd1c9f034335f136f87ad84b625c8f1
+      role: admin
+ext-plugin:
+  cmd: [ "python3", "/path/to/apisix-python-plugin-runner/apisix/main.py", "start" ]
+```
+
+#### Python Runner配置(可选)
+
+如果需要对 `Log Level` 或 `Unix Domain Socket` 环境变量调整可以修改 `Runner` 的配置文件
+
+```bash
+$ vim /path/to/apisix-python-plugin-runner/apisix/config.yaml
+socket:
+  file: $env.APISIX_LISTEN_ADDRESS # Environment variable or absolute path
+
+logging:
+  level: debug # error warn info debug
+```
+
+### 启动 Python Runner
+
+```bash
+$ cd /path/to/apisix
+# Start or Restart
+$ ./bin/apisix [ start | restart ]
+```
+
+启动或重启 `APISIX` 即可,此时 `APISIX` 和 `Python Runner` 已经完成配置并启动。
+
+### 测试 Python Runner
+
+#### 配置APISIX路由及插件信息
+
+```bash
+# 使用默认demo插件进行测试
+$ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+  "uri": "/get",
+  "plugins": {
+    "ext-plugin-pre-req": {
+      "conf": [
+        { "name": "stop", "value":"{\"body\":\"hello\"}"}
+      ]
+    }
+  },
+  "upstream": {
+        "type": "roundrobin",
+        "nodes": {
+            "127.0.0.1:1980": 1
+        }
+    }
+}'
+```
+
+- `plugins.ext-plugin-pre-req.conf` 为 `Runner` 插件配置,`conf` 为数组格式可以同时设置多个插件。
+- 插件配置对象中 `name` 为插件名称,该名称需要与插件代码文件和对象名称一直。
+- 插件配置对象中 `value` 为插件配置,可以为 `JSON` 字符串。
+
+#### 访问验证
+
+```bash
+$ curl http://127.0.0.1:9080/get -i
+HTTP/1.1 200 OK
+Date: Fri, 13 Aug 2021 13:39:18 GMT
+Content-Type: text/plain; charset=utf-8
+Transfer-Encoding: chunked
+Connection: keep-alive
+host: 127.0.0.1:9080
+accept: */*
+user-agent: curl/7.64.1
+X-Resp-A6-Runner: Python
+Server: APISIX/2.7
+
+Hello, Python Runner of APISIX
+```
+
+## 插件开发
+
+### 插件目录
+
+```bash
+/path/to/apisix-python-plugin-runner/apisix/plugins
+```
+
+此目录中的 `.py` 文件将会被自动加载。
+
+### 插件示例
+
+```bash
+/path/to/apisix-python-plugin-runner/apisix/plugins/stop.py
+/path/to/apisix-python-plugin-runner/apisix/plugins/rewrite.py
+```
+
+### 插件格式
+
+```python
+from apisix.runner.plugin.base import Base
+from apisix.runner.http.request import Request
+from apisix.runner.http.response import Response
+
+
+class Stop(Base):
+    def __init__(self):
+        """
+        Example of `stop` type plugin, features:
+            This type of plugin can customize response `body`, `header`, `http_code`
+            This type of plugin will interrupt the request
+        """
+        super(Stop, self).__init__(self.__class__.__name__)
+
+    def filter(self, request: Request, response: Response):
+        """
+        The plugin executes the main function
+        :param request:
+            request parameters and information
+        :param response:
+            response parameters and information
+        :return:
+        """
+        # 在插件中可以通过 `self.config` 获取配置信息,如果插件配置为JSON将自动转换为字典结构
+        # print(self.config)
+
+        # 设置响应头信息
+        headers = request.headers
+        headers["X-Resp-A6-Runner"] = "Python"
+        response.headers = headers
+
+        # 设置响应体信息
+        response.body = "Hello, Python Runner of APISIX"
+
+        # 设置响应状态码
+        response.status_code = 201
+
+        # 通过调用 `self.stop()` 中断请求流程,此时将立即响应请求给客户端
+        # 如果未显示调用 `self.stop()` 或 显示调用 `self.rewrite()`将继续将请求
+        # 默认为 `self.rewrite()`
+        self.stop()
+```
+
+### 插件规范及注意事项
+
+- 实现插件对象必须继承 `Base` 类
+- 插件必须实现 `filter` 函数
+- `filter` 函数参数只能包含 `Request` 和 `Response` 类对象作为参数
+- `Request` 对象参数可以获取请求信息
+- `Response` 对象参数可以设置响应信息
+- `self.config` 可以获取插件配置信息
+- `filter` 函数中调用 `self.stop()` 时将马上中断请求,响应数据。
+- `filter` 函数中调用 `self.rewrite()` 时,将会继续请求。
+
+## 欢迎参与
+
+目前 `Apache APISIX` 各语言的 `Runner` 还处于早期开发阶段,我们会陆续完善其功能。成功的开源项目离不开大家的参与和贡献,欢迎各位参与到 `Apache APISIX Runner`
+的开发中来,让我们一起共建 `Apache APISIX` 和各语言的桥梁。

Review comment:
       ```suggestion
   ```




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] Serendipity96 commented on a change in pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
Serendipity96 commented on a change in pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#discussion_r703125210



##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`

Review comment:
       I think it's easier for others who want to know how to use 'Java' or 'Go' to find the article by link.
   在 `Apache APISIX Python Runner` 之前社区中已经支持了 [Java](https://xxx) 和 [Golang](https://xxx) 语言的 `Runner` 




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] netlify[bot] edited a comment on pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
netlify[bot] edited a comment on pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#issuecomment-913760356


   👷 Deploy Preview for *apisix* processing.
   
   
   🔨 Explore the source changes: 5f6bb399c84603593fa9be11eef219b058ca96f2
   
   🔍 Inspect the deploy log: [https://app.netlify.com/sites/apisix/deploys/613731a12e1cf200088c4689](https://app.netlify.com/sites/apisix/deploys/613731a12e1cf200088c4689?utm_source=github&utm_campaign=bot_dl)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] Serendipity96 commented on a change in pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
Serendipity96 commented on a change in pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#discussion_r703123868



##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`

Review comment:
       APISIX  -> Apache APISIX




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] yzeng25 commented on a change in pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
yzeng25 commented on a change in pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#discussion_r703123736



##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`

Review comment:
       "......让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,"
   --->
   "让我们在开发的过程中可以更专注应用逻辑的开发。Python 作为一个有30年历史的老牌开发语言,它的生态以及各种模块已经非常完善。"

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。

Review comment:
       "`Python`其他的优点就不在一一赘述,"
   --->
   "`Python`的其他优点就不再一一赘述。"

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`

Review comment:
       `APISIX` ---> `Apache APISIX`

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`
+通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+
+![Apache APISIX work flow](../static/img/blog_img/2021-09-06-1.png)
+
+上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 `apisix-python-plugin-runner` 就是支持 `Python`
+语言的 `Plugin Runner`。
+
+当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin Runner`,该子进程与 `Apache APISIX`
+进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+
+如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+
+- `ext-plugin-pre-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前
+- `ext-plugin-post-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之后
+
+根据需要配置 `Plugin Runner` 的执行时机。
+
+`Plugin Runner` 会处理 `RPC` 调用,在其内部创建一个模拟请求,然后运行多语言编写的插件,并将结果返回给 Apache APISIX。
+
+多语言插件的执行顺序是在 `ext-plugin-*` 插件配置项中定义的,像其他插件一样,它们可以被启用并在运行中重新定义。
+
+## 部署测试
+
+### 基础运行环境
+
+- Apache APISIX 2.7
+- Python 3.6+
+
+`APISIX` 的安装部署本文不在过多赘述可以参照 [文档](https://github.com/apache/apisix/blob/master/docs/en/latest/how-to-build.md) 进行部署。

Review comment:
       "`APISIX` 的安装部署本文不在过多赘述可以参照 [文档](https://github.com/apache/apisix/blob/master/docs/en/latest/how-to-build.md) 进行部署。"
   --->
   "`Apache APISIX` 的安装部署不再过多赘述,详情请参考 [Apache APISIX 官方文档:如何构建 Apache APISIX](https://github.com/apache/apisix/blob/master/docs/zh/latest/how-to-build.md) 进行部署。"

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`

Review comment:
       "`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`" ---> "鉴权、认证、缓存、版本、熔断、审计"

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`
+通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+
+![Apache APISIX work flow](../static/img/blog_img/2021-09-06-1.png)
+
+上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 `apisix-python-plugin-runner` 就是支持 `Python`
+语言的 `Plugin Runner`。
+
+当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin Runner`,该子进程与 `Apache APISIX`
+进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+
+如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+
+- `ext-plugin-pre-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前
+- `ext-plugin-post-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之后
+
+根据需要配置 `Plugin Runner` 的执行时机。

Review comment:
       I don't get it... could you explain more in this sentence?

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`

Review comment:
       API网关 ---> API 网关

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+

Review comment:
       please delete empty line, thanks.

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`
+通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+
+![Apache APISIX work flow](../static/img/blog_img/2021-09-06-1.png)
+
+上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 `apisix-python-plugin-runner` 就是支持 `Python`
+语言的 `Plugin Runner`。
+
+当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin Runner`,该子进程与 `Apache APISIX`
+进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+
+如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+
+- `ext-plugin-pre-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前
+- `ext-plugin-post-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之后

Review comment:
       ditto

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`

Review comment:
       Is there a way to emphasize `Pythonista` in Chinese? When I google search this word, it returns a bunch of ambiguous results, https://www.google.com/search?q=Pythonista&oq=Pythonista&aqs=chrome..69i57.270j0j7&sourceid=chrome&ie=UTF-8 . 

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`
+通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+
+![Apache APISIX work flow](../static/img/blog_img/2021-09-06-1.png)
+
+上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 `apisix-python-plugin-runner` 就是支持 `Python`
+语言的 `Plugin Runner`。
+
+当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin Runner`,该子进程与 `Apache APISIX`
+进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+
+如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+
+- `ext-plugin-pre-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前
+- `ext-plugin-post-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之后
+
+根据需要配置 `Plugin Runner` 的执行时机。
+
+`Plugin Runner` 会处理 `RPC` 调用,在其内部创建一个模拟请求,然后运行多语言编写的插件,并将结果返回给 Apache APISIX。
+
+多语言插件的执行顺序是在 `ext-plugin-*` 插件配置项中定义的,像其他插件一样,它们可以被启用并在运行中重新定义。
+
+## 部署测试
+
+### 基础运行环境
+
+- Apache APISIX 2.7
+- Python 3.6+
+
+`APISIX` 的安装部署本文不在过多赘述可以参照 [文档](https://github.com/apache/apisix/blob/master/docs/en/latest/how-to-build.md) 进行部署。
+
+### 下载安装 Python Runner
+
+```bash
+$ git clone https://github.com/apache/apisix-python-plugin-runner.git
+$ cd apisix-python-plugin-runner
+$ make install
+```
+
+### 配置 Python Runner
+
+#### 开发模式
+
+##### 运行Python Runner
+
+```bash
+$ cd /path/to/apisix-python-plugin-runner
+$ APISIX_LISTEN_ADDRESS=unix:/tmp/runner.sock python3 apisix/main.py start
+```
+
+##### 修改APISIX配置文件
+
+```bash
+$ vim /path/to/apisix/conf/config.yaml
+apisix:
+  admin_key:
+    - name: "admin"
+      key: edd1c9f034335f136f87ad84b625c8f1
+      role: admin
+ext-plugin:
+  path_for_test: /tmp/runner.sock
+```
+
+#### 生产模式
+
+##### 修改APISIX配置文件
+
+```bash
+$ vim /path/to/apisix/conf/config.yaml
+apisix:
+  admin_key:
+    - name: "admin"
+      key: edd1c9f034335f136f87ad84b625c8f1
+      role: admin
+ext-plugin:
+  cmd: [ "python3", "/path/to/apisix-python-plugin-runner/apisix/main.py", "start" ]
+```
+
+#### Python Runner配置(可选)
+
+如果需要对 `Log Level` 或 `Unix Domain Socket` 环境变量调整可以修改 `Runner` 的配置文件
+
+```bash
+$ vim /path/to/apisix-python-plugin-runner/apisix/config.yaml
+socket:
+  file: $env.APISIX_LISTEN_ADDRESS # Environment variable or absolute path
+
+logging:
+  level: debug # error warn info debug
+```
+
+### 启动 Python Runner
+
+```bash
+$ cd /path/to/apisix
+# Start or Restart
+$ ./bin/apisix [ start | restart ]
+```
+
+启动或重启 `APISIX` 即可,此时 `APISIX` 和 `Python Runner` 已经完成配置并启动。
+
+### 测试 Python Runner
+
+#### 配置APISIX路由及插件信息

Review comment:
       配置APISIX路由及插件信息  ---> 配置 Apache APISIX 路由及插件信息

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。

Review comment:
       “`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。”
   --->
   “`Python` 的缺点也比较明显:`Python` 作为一门解释性语言,相较于 `C++` 和 `Golang` 这样的编译型语言,在性能上的差距还是比较大的。”

##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`
+通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+
+![Apache APISIX work flow](../static/img/blog_img/2021-09-06-1.png)
+
+上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 `apisix-python-plugin-runner` 就是支持 `Python`
+语言的 `Plugin Runner`。
+
+当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin Runner`,该子进程与 `Apache APISIX`
+进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+
+如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+
+- `ext-plugin-pre-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前

Review comment:
       "`ext-plugin-pre-req` : " ---> "`ext-plugin-pre-req`:"




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] shuaijinchao commented on a change in pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
shuaijinchao commented on a change in pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#discussion_r703346354



##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,279 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 [Java](https://github.com/apache/apisix-java-plugin-runner)
+和 [Go](https://github.com/apache/apisix-go-plugin-runner) 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`Apache APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:鉴权、认证、缓存、版本、熔断、审计 等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX`

Review comment:
       done




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] netlify[bot] edited a comment on pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
netlify[bot] edited a comment on pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#issuecomment-913760356


   ✔️ Deploy Preview for *apisix* ready!
   
   
   🔨 Explore the source changes: 8f92225b03c561372fe69b06f0c1892ed058ad3b
   
   🔍 Inspect the deploy log: [https://app.netlify.com/sites/apisix/deploys/6136441b48a27e000702a07b](https://app.netlify.com/sites/apisix/deploys/6136441b48a27e000702a07b?utm_source=github&utm_campaign=bot_dl)
   
   😎 Browse the preview: [https://deploy-preview-560--apisix.netlify.app](https://deploy-preview-560--apisix.netlify.app?utm_source=github&utm_campaign=bot_dp)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] juzhiyuan commented on a change in pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
juzhiyuan commented on a change in pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#discussion_r703099816



##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,274 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`
+通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+
+![Apache APISIX work flow](../static/img/blog_img/2021-09-06-1.png)
+
+上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 `apisix-python-plugin-runner` 就是支持 `Python`
+语言的 `Plugin Runner`。
+
+当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin Runner`,该子进程与 `Apache APISIX`
+进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+
+如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+
+- `ext-plugin-pre-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前
+- `ext-plugin-post-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之后
+
+根据需要配置 `Plugin Runner` 的执行时机。
+
+`Plugin Runner` 会处理 `RPC` 调用,在其内部创建一个模拟请求,然后运行多语言编写的插件,并将结果返回给 Apache APISIX。
+
+多语言插件的执行顺序是在 `ext-plugin-*` 插件配置项中定义的,像其他插件一样,它们可以被启用并在运行中重新定义。
+
+## 部署测试
+
+### 基础运行环境
+
+- Apache APISIX 2.7
+- Python 3.6+
+
+`APISIX` 的安装部署本文不在过多赘述可以参照 [文档](https://github.com/apache/apisix/blob/master/docs/en/latest/how-to-build.md) 进行部署。
+
+### 下载安装 Python Runner
+
+```bash
+$ git clone https://github.com/apache/apisix-python-plugin-runner.git
+$ cd apisix-python-plugin-runner
+$ make install
+```
+
+### 配置 Python Runner
+
+#### 开发模式
+
+##### 运行Python Runner
+
+```bash
+$ cd /path/to/apisix-python-plugin-runner
+$ APISIX_LISTEN_ADDRESS=unix:/tmp/runner.sock python3 apisix/main.py start
+```
+
+##### 修改APISIX配置文件
+
+```bash
+$ vim /path/to/apisix/conf/config.yaml
+apisix:
+  admin_key:
+    - name: "admin"
+      key: edd1c9f034335f136f87ad84b625c8f1
+      role: admin
+ext-plugin:
+  path_for_test: /tmp/runner.sock
+```
+
+#### 生产模式
+
+##### 修改APISIX配置文件
+
+```bash
+$ vim /path/to/apisix/conf/config.yaml
+apisix:
+  admin_key:
+    - name: "admin"
+      key: edd1c9f034335f136f87ad84b625c8f1
+      role: admin
+ext-plugin:
+  cmd: [ "python3", "/path/to/apisix-python-plugin-runner/apisix/main.py", "start" ]
+```
+
+#### Python Runner配置(可选)
+
+如果需要对 `Log Level` 或 `Unix Domain Socket` 环境变量调整可以修改 `Runner` 的配置文件
+
+```bash
+$ vim /path/to/apisix-python-plugin-runner/apisix/config.yaml
+socket:
+  file: $env.APISIX_LISTEN_ADDRESS # Environment variable or absolute path
+
+logging:
+  level: debug # error warn info debug
+```
+
+### 启动 Python Runner
+
+```bash
+$ cd /path/to/apisix
+# Start or Restart
+$ ./bin/apisix [ start | restart ]
+```
+
+启动或重启 `APISIX` 即可,此时 `APISIX` 和 `Python Runner` 已经完成配置并启动。
+
+### 测试 Python Runner
+
+#### 配置APISIX路由及插件信息
+
+```bash
+# 使用默认demo插件进行测试
+$ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+  "uri": "/get",
+  "plugins": {
+    "ext-plugin-pre-req": {
+      "conf": [
+        { "name": "stop", "value":"{\"body\":\"hello\"}"}
+      ]
+    }
+  },
+  "upstream": {
+        "type": "roundrobin",
+        "nodes": {
+            "127.0.0.1:1980": 1
+        }
+    }
+}'
+```
+
+- `plugins.ext-plugin-pre-req.conf` 为 `Runner` 插件配置,`conf` 为数组格式可以同时设置多个插件。
+- 插件配置对象中 `name` 为插件名称,该名称需要与插件代码文件和对象名称一直。
+- 插件配置对象中 `value` 为插件配置,可以为 `JSON` 字符串。
+
+#### 访问验证
+
+```bash
+$ curl http://127.0.0.1:9080/get -i
+HTTP/1.1 200 OK
+Date: Fri, 13 Aug 2021 13:39:18 GMT
+Content-Type: text/plain; charset=utf-8
+Transfer-Encoding: chunked
+Connection: keep-alive
+host: 127.0.0.1:9080
+accept: */*
+user-agent: curl/7.64.1
+X-Resp-A6-Runner: Python
+Server: APISIX/2.7
+
+Hello, Python Runner of APISIX
+```
+
+## 插件开发
+
+### 插件目录
+
+```bash
+/path/to/apisix-python-plugin-runner/apisix/plugins
+```
+
+此目录中的 `.py` 文件将会被自动加载。
+
+### 插件示例
+
+```bash
+/path/to/apisix-python-plugin-runner/apisix/plugins/stop.py
+/path/to/apisix-python-plugin-runner/apisix/plugins/rewrite.py
+```
+
+### 插件格式
+
+```python
+from apisix.runner.plugin.base import Base
+from apisix.runner.http.request import Request
+from apisix.runner.http.response import Response
+
+
+class Stop(Base):
+    def __init__(self):
+        """
+        Example of `stop` type plugin, features:
+            This type of plugin can customize response `body`, `header`, `http_code`
+            This type of plugin will interrupt the request
+        """
+        super(Stop, self).__init__(self.__class__.__name__)
+
+    def filter(self, request: Request, response: Response):
+        """
+        The plugin executes the main function
+        :param request:
+            request parameters and information
+        :param response:
+            response parameters and information
+        :return:
+        """
+        # 在插件中可以通过 `self.config` 获取配置信息,如果插件配置为JSON将自动转换为字典结构
+        # print(self.config)
+
+        # 设置响应头信息
+        headers = request.headers
+        headers["X-Resp-A6-Runner"] = "Python"
+        response.headers = headers
+
+        # 设置响应体信息
+        response.body = "Hello, Python Runner of APISIX"
+
+        # 设置响应状态码
+        response.status_code = 201
+
+        # 通过调用 `self.stop()` 中断请求流程,此时将立即响应请求给客户端
+        # 如果未显示调用 `self.stop()` 或 显示调用 `self.rewrite()`将继续将请求
+        # 默认为 `self.rewrite()`
+        self.stop()
+```
+
+### 插件规范及注意事项
+
+- 实现插件对象必须继承 `Base` 类
+- 插件必须实现 `filter` 函数
+- `filter` 函数参数只能包含 `Request` 和 `Response` 类对象作为参数
+- `Request` 对象参数可以获取请求信息
+- `Response` 对象参数可以设置响应信息
+- `self.config` 可以获取插件配置信息
+- `filter` 函数中调用 `self.stop()` 时将马上中断请求,响应数据。
+- `filter` 函数中调用 `self.rewrite()` 时,将会继续请求。
+
+## 欢迎参与
+
+目前 `Apache APISIX` 各语言的 `Runner` 还处于早期开发阶段,我们会陆续完善其功能。成功的开源项目离不开大家的参与和贡献,欢迎各位参与到 `Apache APISIX Runner`

Review comment:
       ```suggestion
   目前 `Apache APISIX` 各语言的 `Runner` 还处于早期开发阶段,我们会陆续完善其功能。成功的开源项目离不开大家的参与和贡献,欢迎各位参与到 `Apache APISIX Runner` 的开发中来,让我们一起共建 `Apache APISIX` 和各语言的桥梁。
   ```




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] yzeng25 commented on a change in pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
yzeng25 commented on a change in pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#discussion_r703272024



##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,279 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 [Java](https://github.com/apache/apisix-java-plugin-runner)
+和 [Go](https://github.com/apache/apisix-go-plugin-runner) 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`Apache APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:鉴权、认证、缓存、版本、熔断、审计 等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX`

Review comment:
       ”`Apache APISIX` 是一个高性能的云原生开源API网关“
   --->
   "`Apache APISIX` 是一个高性能的云原生开源 API 网关"




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] Serendipity96 commented on a change in pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
Serendipity96 commented on a change in pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#discussion_r703143629



##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`
+通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+
+![Apache APISIX work flow](../static/img/blog_img/2021-09-06-1.png)
+
+上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 `apisix-python-plugin-runner` 就是支持 `Python`
+语言的 `Plugin Runner`。
+
+当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin Runner`,该子进程与 `Apache APISIX`
+进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+
+如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+
+- `ext-plugin-pre-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前
+- `ext-plugin-post-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之后

Review comment:
       Is this a plugin? Please add a link to the project documentation or GitHub address.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] Serendipity96 commented on a change in pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
Serendipity96 commented on a change in pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#discussion_r703124185



##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`
+通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+
+![Apache APISIX work flow](../static/img/blog_img/2021-09-06-1.png)
+
+上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 `apisix-python-plugin-runner` 就是支持 `Python`
+语言的 `Plugin Runner`。
+
+当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin Runner`,该子进程与 `Apache APISIX`
+进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+
+如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+
+- `ext-plugin-pre-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前
+- `ext-plugin-post-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之后
+
+根据需要配置 `Plugin Runner` 的执行时机。
+
+`Plugin Runner` 会处理 `RPC` 调用,在其内部创建一个模拟请求,然后运行多语言编写的插件,并将结果返回给 Apache APISIX。
+
+多语言插件的执行顺序是在 `ext-plugin-*` 插件配置项中定义的,像其他插件一样,它们可以被启用并在运行中重新定义。
+
+## 部署测试
+
+### 基础运行环境
+
+- Apache APISIX 2.7
+- Python 3.6+
+
+`APISIX` 的安装部署本文不在过多赘述可以参照 [文档](https://github.com/apache/apisix/blob/master/docs/en/latest/how-to-build.md) 进行部署。

Review comment:
       APISIX -> Apache APISIX




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] Serendipity96 commented on a change in pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
Serendipity96 commented on a change in pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#discussion_r703143525



##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 `Java` 和 `Golang` 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:`鉴权`、`认证`、`缓存`、`版本`、`熔断`、`审计`
+等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX` 的加持只需要关注业务实现即可,省去了大量花费在通用能力上的开发与维护上的时间并且也降低了整体业务架构的复杂度。
+
+### Python
+
+`Python` 语言作为一个解释型的高级编程语言,它 `语法简洁易上手`、`代码可读性好` ,在 `跨平台` 、`可移植性` 、`开发效率`
+上都有很好的表现,同时作为一个高级编程语言它的封装抽象程度比较高屏蔽了很多底层细节(例如:`GC`
+)让我们在开发的过程中可以更专注应用逻辑的开发,而且作为一个有30年历史的老牌开发语言生态以及各种模块已经非常完善,我们大部分的开发和应用场景都可以从社区中找到很成熟的模块或解决方案,`Python`
+其他的优点就不在一一赘述,`Python` 的缺点也比较明显作为一门解释性语言相较于 `C++` 、`Golang` 这样的编译型语言性能上的差距还是比较大的。
+
+### Apache APISIX Python Runner
+
+[apache-apisix-python-runner](https://github.com/apache/apisix-python-plugin-runner) 这个项目可以理解为 `Apache APISIX`
+和 `Python`
+之间的一道桥梁,通过 `Python Runner` 可以把 `Python` 直接应用到 `APISIX` 的插件开发中,最重要的还是希望让更多对 `Apache APISIX` 和 API网关 感兴趣的 `Pythonista`
+通过这个项目更多的了解使用 `Apache APISIX`,以下为 `Apache APISIX` 多语言支持的架构图。
+
+![Apache APISIX work flow](../static/img/blog_img/2021-09-06-1.png)
+
+上图左边是 `Apache APISIX` 的工作流程,右边的 `Plugin Runner` 是各语言的插件运行器,本文介绍的 `apisix-python-plugin-runner` 就是支持 `Python`
+语言的 `Plugin Runner`。
+
+当你在 `Apache APISIX` 中配置一个 `Plugin Runner` 时,`Apache APISIX` 会启动一个子进程运行 `Plugin Runner`,该子进程与 `Apache APISIX`
+进程属于同一个用户,当我们重启或重新加载 `Apache APISIX` 时,`Plugin Runner` 也将被重启。
+
+如果你为一个给定的路由配置了 `ext-plugin-*` 插件,请求命中该路由时将触发 `Apache APISIX` 通过 `Unix Socket` 向 `Plugin Runner` 发起 `RPC` 调用。调用分为两个阶段:
+
+- `ext-plugin-pre-req` : 在执行 `Apache APISIX` 内置插件(Lua 语言插件)之前

Review comment:
       Is this a plugin? Please add a link to the project documentation or GitHub address.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] shuaijinchao commented on pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
shuaijinchao commented on pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#issuecomment-914057533


   cc @Serendipity96 @yzeng25 @juzhiyuan @liuxiran fixed, please review


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] netlify[bot] edited a comment on pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
netlify[bot] edited a comment on pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#issuecomment-913760356


   ✔️ Deploy Preview for *apisix* ready!
   
   
   🔨 Explore the source changes: 273c19059a45f0d02786c4b882f745bd575eefcb
   
   🔍 Inspect the deploy log: [https://app.netlify.com/sites/apisix/deploys/61370f3935493a0007b129e2](https://app.netlify.com/sites/apisix/deploys/61370f3935493a0007b129e2?utm_source=github&utm_campaign=bot_dl)
   
   😎 Browse the preview: [https://deploy-preview-560--apisix.netlify.app](https://deploy-preview-560--apisix.netlify.app?utm_source=github&utm_campaign=bot_dp)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] liuxiran commented on a change in pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
liuxiran commented on a change in pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#discussion_r703072527



##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,274 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner tags: [technology]

Review comment:
       ```suggestion
   - APISIX Python Plugin Runner 
   tags: [technology]
   ```




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] netlify[bot] edited a comment on pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
netlify[bot] edited a comment on pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#issuecomment-913760356


   👷 Deploy Preview for *apisix* processing.
   
   
   🔨 Explore the source changes: 273c19059a45f0d02786c4b882f745bd575eefcb
   
   🔍 Inspect the deploy log: [https://app.netlify.com/sites/apisix/deploys/61370f3935493a0007b129e2](https://app.netlify.com/sites/apisix/deploys/61370f3935493a0007b129e2?utm_source=github&utm_campaign=bot_dl)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] netlify[bot] commented on pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
netlify[bot] commented on pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#issuecomment-913760356


   👷 Deploy Preview for *apisix* processing.
   
   
   🔨 Explore the source changes: 6172643f8661ab658fba55d03b9a353aa5e66c7c
   
   🔍 Inspect the deploy log: [https://app.netlify.com/sites/apisix/deploys/613641c343f4930007d297fb](https://app.netlify.com/sites/apisix/deploys/613641c343f4930007d297fb?utm_source=github&utm_campaign=bot_dl)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] yzeng25 commented on a change in pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
yzeng25 commented on a change in pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#discussion_r703273340



##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,279 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+- Python
+- APISIX
+- APISIX Python 插件
+- APISIX Python plugin
+- apisix-python-plugin-runner
+- APISIX Python Plugin Runner 
+tags: [technology]
+
+---
+
+<!--truncate-->
+
+在 `Apache APISIX Python Runner` 之前社区中已经支持了 [Java](https://github.com/apache/apisix-java-plugin-runner)
+和 [Go](https://github.com/apache/apisix-go-plugin-runner) 语言的 `Runner` ,今天 `Python Runner`
+也来了,社区中的小伙伴们在开发 `Apache APISIX` 的插件时又多了一种新选择。
+
+## 简介
+
+### Apache APISIX
+
+`Apache APISIX` 是一个高性能的云原生开源API网关,它可以对请求进行统一的拦截和治理(如:鉴权、认证、缓存、版本、熔断、审计 等等)帮助开发人员轻松的对外提供安全可靠的服务,而开发人员通过 `Apache APISIX`

Review comment:
       Other things LGTM @shuaijinchao cc @Serendipity96 @juzhiyuan @liuxiran 




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] netlify[bot] edited a comment on pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
netlify[bot] edited a comment on pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#issuecomment-913760356


   ✔️ Deploy Preview for *apisix* ready!
   
   
   🔨 Explore the source changes: b116491ca3dca3f1f45e60229d70d4cc099c5274
   
   🔍 Inspect the deploy log: [https://app.netlify.com/sites/apisix/deploys/61364946d07caa0007cb0ed6](https://app.netlify.com/sites/apisix/deploys/61364946d07caa0007cb0ed6?utm_source=github&utm_campaign=bot_dl)
   
   😎 Browse the preview: [https://deploy-preview-560--apisix.netlify.app](https://deploy-preview-560--apisix.netlify.app?utm_source=github&utm_campaign=bot_dp)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] Serendipity96 commented on a change in pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
Serendipity96 commented on a change in pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#discussion_r703122365



##########
File path: website/blog/2021-09-06-python-helps-you-quickly-with-Apache-APISIX-development.md
##########
@@ -0,0 +1,275 @@
+---
+title: "Python 助你快速上手 Apache APISIX 插件开发"
+author: "shuaijinchao"
+authorURL: "https://github.com/shuaijinchao"
+authorImageURL: "https://avatars.githubusercontent.com/u/8529452?v=4"
+keywords:
+

Review comment:
       extra space




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [apisix-website] netlify[bot] edited a comment on pull request #560: docs: added python helps you quickly with Apache APISIX plugin development blog

Posted by GitBox <gi...@apache.org>.
netlify[bot] edited a comment on pull request #560:
URL: https://github.com/apache/apisix-website/pull/560#issuecomment-913760356


   👷 Deploy Preview for *apisix* processing.
   
   
   🔨 Explore the source changes: eb7eb19b2a443c0b46db611542014c9c3f587d57
   
   🔍 Inspect the deploy log: [https://app.netlify.com/sites/apisix/deploys/6136ac63b1425200071fb9de](https://app.netlify.com/sites/apisix/deploys/6136ac63b1425200071fb9de?utm_source=github&utm_campaign=bot_dl)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org