yzeng25 commented on a change in pull request #783: URL: https://github.com/apache/apisix-website/pull/783#discussion_r759992050
########## File path: website/i18n/zh/docusaurus-plugin-content-blog/2021/12/02/weekly-report-1130.md ########## @@ -0,0 +1,174 @@ +--- +title: "社区双周报|11.15-11.30 功能亮点更新进行中" +keywords: +- Apache APISIX +- 社区周报 +- APISIX +- API Gateway +- 贡献者 +description: “独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。 +tags: [Events] +--- + +> 从 11.15 到 11.30, 有 37 位开发者为 Apache APISIX 提交了 87 个 commits。感谢这些小伙伴为 Apache APISIX 添砖加瓦,是你们的无私付出,让 Apache APISIX 项目变得更好! + +<!--truncate--> + +## 导语 + +Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界最活跃的开源 API 网关项目。这些成就,离不开社区小伙伴们的共同奋斗。 + +“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的进展,方便大家参与到 Apache APISIX 社区中来。 + +我们还整理了一些适合新来社区的小伙伴们参加的 issue!感兴趣的同学们,走过路过不要错过! + +## 贡献者统计 + + + + + +## Good first issue + +### Issue #5451 + +**链接**: https://github.com/apache/apisix/issues/5451 + +**问题描述**:Nginx自带的响应内容替换库可以替换局部内容:http://nginx.org/en/docs/http/ngx_http_sub_module.html + +```Nginx +sub_filter '<a href="http://127.0.0.1:8080/' '<a href="https://$host/'; +``` + +有个支持正则替换的库(印象中Openresty已默认支持):ngx_http_substitutions_filter_module,可以通过正则表达式来替换内容: + +```Nginx +subs_filter_types text/html text/css text/xml; +subs_filter st(\d*).example.com $1.example.com ir; +subs_filter a.example.com s.example.com; +subs_filter http://$host https://$host; +``` + +但是 APISIX 的 response-rewrite 插件文档,好像只能支持完整替换,相当于直接将所有响应都换成插件设置的返回,并不支持部分内容替换: Review comment: ```suggestion 但是 APISIX 的 response-rewrite 插件文档,好像只能支持完整替换,相当于直接将所有响应都换成插件设置的返回,并不支持部分内容替换: ``` ########## File path: website/blog/2021/12/02/weekly-report-1130.md ########## @@ -0,0 +1,186 @@ +--- +title: Biweekly Report|11.15-11.30 Feature Highlights Update in Progress +keywords: +- Apache APISIX +- Weekly Report +- Contributor +- APISIX +- API Gateway +- Apache +description: The Apache APISIX Community Weekly Report hopes to help community members better understand the weekly progress of the Apache APISIX community and and facilitate everyone to participate in the Apache APISIX community. +tags: [Events] +--- + +> From 11.15 to 11.30, 37 contributors submitted 87 commits for Apache APISIX. Thank you all for your contributions to Apache APISIX. It is your selfless contribution to make the Apache APISIX project better! + +<!--truncate--> + +## Introduction + +Apache APISIX has grown as a community from the first day of open source and has quickly become the most active open source API gateway project in the world. These achievements cannot be achieved without the joint efforts of our community partners. + +"If you want to go fast, go alone.If you want to go far, go together." The Apache APISIX Community Weekly Report hopes to help community members better understand the weekly progress of the Apache APISIX community and and facilitate everyone to participate in the Apache APISIX community. + +We have also compiled some issues suitable for newcomers to the community to participate in! If you are interested, don't miss it! + +## Contributor Statistics + + + + + +## Good first issue + +### Issue #5451 + +**Link**: https://github.com/apache/apisix/issues/5451 + +**Issue description**: + +Nginx comes with a response content replacement library that can replace partial content: http://nginx.org/en/docs/http/ngx_http_sub_module.html + +```Nginx +sub_filter '<a href="http://127.0.0.1:8080/' '<a href="https://$host/'; +``` + +There is a library that supports regular substitution (as I remember Openresty already supports it by default): ngx_http_substitutions_filter_module, which can replace content with regular expressions: ngx_http_substitutions_filter_module + +```Nginx +subs_filter_types text/html text/css text/xml; +subs_filter st(\d*).example.com $1.example.com ir; +subs_filter a.example.com s.example.com; +subs_filter http://$host https://$host; +``` + +However, it seems that APISIX's response-rewrite plugin only supports full replacement, which is equivalent to directly replacing all responses with the return set by the plugin, and does not support partial content replacement: + +```Bash +curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' +{ + "methods": ["GET"], + "uri": "/test/index.html", + "plugins": { + "response-rewrite": { + "body": "{\"code\":\"ok\",\"message\":\"new json body\"}", + "headers": { + "X-Server-id": 3, + "X-Server-status": "on", + "X-Server-balancer_addr": "$balancer_ip:$balancer_port" + }, + "vars":[ + [ "status","==","200" ] + ] + } + }, + "upstream": { + "type": "roundrobin", + "nodes": { + "127.0.0.1:80": 1 + } + } +}' +``` + +Does this plugin support partial replacement or regular replacement? If not, is there any other solution for APISIX? + +### Issue #5647 + +**Link**: https://github.com/apache/apisix/issues/5647 + +**Issue description**: + +The current documentation provides a way to install APISIX directly using RPM on CentOS7, but the current APISIX has switched its dependency to apisix-base version without providing its RPM installation method, which will cause the installation to fail. + + + +Is it possible to add the command for installing the RPM for apisix-base. + +### Issue #5649 + +**Link**: https://github.com/apache/apisix/issues/5647 + +**Issue description**: + +Currently, the README claims that the WASM extension is the modern way. However, it is an experimental feature. + +Need to fix it with: + +```SQL +diff --git README.md README.md +index d14aae9c..8e11456c 100644 +--- README.md ++++ README.md +@@ -146,10 +146,10 @@ A/B testing, canary release, blue-green deployment, limit rate, defense against + - Custom routing: Support users to implement routing algorithms themselves. + + - **Multi-Language support** +- - Apache APISIX is a multi-language gateway for plugin development and provides support via `WASM` and `RPC`. ++ - Apache APISIX is a multi-language gateway for plugin development and provides support via `RPC` and `WASM`. +  +- - The WASM or WebAssembly, is the modern way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. +- - The RPC way, is a traditional way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The RPC way, is the current way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The WASM or WebAssembly, is an experimental way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. + + - **Serverless** + - [Lua functions](docs/en/latest/plugins/serverless.md): Invoke functions in each phase in APISIX. +diff --git docs/zh/latest/README.md docs/zh/latest/README.md +index 7f8a1e24..f50b8b5b 100644 +--- docs/zh/latest/README.md ++++ docs/zh/latest/README.md +@@ -145,10 +145,10 @@ A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵 + - 自定义路由: 支持用户自己实现路由算法。 + + - **多语言支持** +- - Apache APISIX 是一个通过 `WASM` 和 `RPC` 支持不同语言来进行插件开发的网关. ++ - Apache APISIX 是一个通过 `RPC` 和 `WASM` 支持不同语言来进行插件开发的网关. +  +- - WASM 或 WebAssembly 是比较现代的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 +- - RPC 是一种比较传统的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - RPC 是当前采用的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - WASM 或 WebAssembly 是实验性的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 Review comment: I am not sure if this part should be here... ########## File path: website/i18n/zh/docusaurus-plugin-content-blog/2021/12/02/weekly-report-1130.md ########## @@ -0,0 +1,174 @@ +--- +title: "社区双周报|11.15-11.30 功能亮点更新进行中" +keywords: +- Apache APISIX +- 社区周报 +- APISIX +- API Gateway +- 贡献者 +description: “独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。 +tags: [Events] +--- + +> 从 11.15 到 11.30, 有 37 位开发者为 Apache APISIX 提交了 87 个 commits。感谢这些小伙伴为 Apache APISIX 添砖加瓦,是你们的无私付出,让 Apache APISIX 项目变得更好! + +<!--truncate--> + +## 导语 + +Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界最活跃的开源 API 网关项目。这些成就,离不开社区小伙伴们的共同奋斗。 + +“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的进展,方便大家参与到 Apache APISIX 社区中来。 + +我们还整理了一些适合新来社区的小伙伴们参加的 issue!感兴趣的同学们,走过路过不要错过! + +## 贡献者统计 + + + + + +## Good first issue + +### Issue #5451 + +**链接**: https://github.com/apache/apisix/issues/5451 + +**问题描述**:Nginx自带的响应内容替换库可以替换局部内容:http://nginx.org/en/docs/http/ngx_http_sub_module.html + +```Nginx +sub_filter '<a href="http://127.0.0.1:8080/' '<a href="https://$host/'; +``` + +有个支持正则替换的库(印象中Openresty已默认支持):ngx_http_substitutions_filter_module,可以通过正则表达式来替换内容: + +```Nginx +subs_filter_types text/html text/css text/xml; +subs_filter st(\d*).example.com $1.example.com ir; +subs_filter a.example.com s.example.com; +subs_filter http://$host https://$host; +``` + +但是 APISIX 的 response-rewrite 插件文档,好像只能支持完整替换,相当于直接将所有响应都换成插件设置的返回,并不支持部分内容替换: + +```Bash +curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' +{ + "methods": ["GET"], + "uri": "/test/index.html", + "plugins": { + "response-rewrite": { + "body": "{\"code\":\"ok\",\"message\":\"new json body\"}", + "headers": { + "X-Server-id": 3, + "X-Server-status": "on", + "X-Server-balancer_addr": "$balancer_ip:$balancer_port" + }, + "vars":[ + [ "status","==","200" ] + ] + } + }, + "upstream": { + "type": "roundrobin", + "nodes": { + "127.0.0.1:80": 1 + } + } +}' +``` + +这个插件是否支持部分替换或正则替换?如果不支持,APISIX 有没有其他解决方案呢? + +### Issue #5647 + +**链接**: https://github.com/apache/apisix/issues/5647 + +**问题描述**:当前文档提供了在 CentOS7 上直接使用 RPM 安装 APISIX 的方法,但是当前 APISIX 已经将依赖切换为 apisix-base 版本,没有提供 RPM 安装方法,会导致安装失败。 + +是否可以添加用于安装 apisix-base 的 RPM 的命令。 + + + +### Issue #5649 + +**链接**: https://github.com/apache/apisix/issues/5649 + +**问题描述**:问题描述:目前,README 文件声称 WASM 扩展是现代方式。但它还是一个实验性的功能。 + +需要进行修复: + +```SQL +diff --git README.md README.md +index d14aae9c..8e11456c 100644 +--- README.md ++++ README.md +@@ -146,10 +146,10 @@ A/B testing, canary release, blue-green deployment, limit rate, defense against + - Custom routing: Support users to implement routing algorithms themselves. + + - **Multi-Language support** +- - Apache APISIX is a multi-language gateway for plugin development and provides support via `WASM` and `RPC`. ++ - Apache APISIX is a multi-language gateway for plugin development and provides support via `RPC` and `WASM`. +  +- - The WASM or WebAssembly, is the modern way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. +- - The RPC way, is a traditional way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The RPC way, is the current way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The WASM or WebAssembly, is an experimental way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. + + - **Serverless** + - [Lua functions](docs/en/latest/plugins/serverless.md): Invoke functions in each phase in APISIX. +diff --git docs/zh/latest/README.md docs/zh/latest/README.md +index 7f8a1e24..f50b8b5b 100644 +--- docs/zh/latest/README.md ++++ docs/zh/latest/README.md +@@ -145,10 +145,10 @@ A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵 + - 自定义路由: 支持用户自己实现路由算法。 + + - **多语言支持** +- - Apache APISIX 是一个通过 `WASM` 和 `RPC` 支持不同语言来进行插件开发的网关. ++ - Apache APISIX 是一个通过 `RPC` 和 `WASM` 支持不同语言来进行插件开发的网关. +  +- - WASM 或 WebAssembly 是比较现代的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 +- - RPC 是一种比较传统的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - RPC 是当前采用的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - WASM 或 WebAssembly 是实验性的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 + + - **Serverless** + - [Lua functions](plugins/serverless.md): 能在 APISIX 每个阶段调用 lua 函数. +``` + +## 近期功能特性亮点 + +- [kafka-logger 支持记录请求体](https://github.com/apache/apisix/pull/5501)(贡献者: [windyrjc](https://github.com/windyrjc)) Review comment: ```suggestion - [kafka-logger 支持记录请求体](https://github.com/apache/apisix/pull/5501)(贡献者:[windyrjc](https://github.com/windyrjc)) ``` ########## File path: website/i18n/zh/docusaurus-plugin-content-blog/2021/12/02/weekly-report-1130.md ########## @@ -0,0 +1,174 @@ +--- +title: "社区双周报|11.15-11.30 功能亮点更新进行中" +keywords: +- Apache APISIX +- 社区周报 +- APISIX +- API Gateway +- 贡献者 +description: “独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。 +tags: [Events] +--- + +> 从 11.15 到 11.30, 有 37 位开发者为 Apache APISIX 提交了 87 个 commits。感谢这些小伙伴为 Apache APISIX 添砖加瓦,是你们的无私付出,让 Apache APISIX 项目变得更好! + +<!--truncate--> + +## 导语 + +Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界最活跃的开源 API 网关项目。这些成就,离不开社区小伙伴们的共同奋斗。 + +“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的进展,方便大家参与到 Apache APISIX 社区中来。 + +我们还整理了一些适合新来社区的小伙伴们参加的 issue!感兴趣的同学们,走过路过不要错过! + +## 贡献者统计 + + + + + +## Good first issue + +### Issue #5451 + +**链接**: https://github.com/apache/apisix/issues/5451 + +**问题描述**:Nginx自带的响应内容替换库可以替换局部内容:http://nginx.org/en/docs/http/ngx_http_sub_module.html + +```Nginx +sub_filter '<a href="http://127.0.0.1:8080/' '<a href="https://$host/'; +``` + +有个支持正则替换的库(印象中Openresty已默认支持):ngx_http_substitutions_filter_module,可以通过正则表达式来替换内容: + +```Nginx +subs_filter_types text/html text/css text/xml; +subs_filter st(\d*).example.com $1.example.com ir; +subs_filter a.example.com s.example.com; +subs_filter http://$host https://$host; +``` + +但是 APISIX 的 response-rewrite 插件文档,好像只能支持完整替换,相当于直接将所有响应都换成插件设置的返回,并不支持部分内容替换: + +```Bash +curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' +{ + "methods": ["GET"], + "uri": "/test/index.html", + "plugins": { + "response-rewrite": { + "body": "{\"code\":\"ok\",\"message\":\"new json body\"}", + "headers": { + "X-Server-id": 3, + "X-Server-status": "on", + "X-Server-balancer_addr": "$balancer_ip:$balancer_port" + }, + "vars":[ + [ "status","==","200" ] + ] + } + }, + "upstream": { + "type": "roundrobin", + "nodes": { + "127.0.0.1:80": 1 + } + } +}' +``` + +这个插件是否支持部分替换或正则替换?如果不支持,APISIX 有没有其他解决方案呢? + +### Issue #5647 + +**链接**: https://github.com/apache/apisix/issues/5647 + +**问题描述**:当前文档提供了在 CentOS7 上直接使用 RPM 安装 APISIX 的方法,但是当前 APISIX 已经将依赖切换为 apisix-base 版本,没有提供 RPM 安装方法,会导致安装失败。 + +是否可以添加用于安装 apisix-base 的 RPM 的命令。 + + + +### Issue #5649 + +**链接**: https://github.com/apache/apisix/issues/5649 + +**问题描述**:问题描述:目前,README 文件声称 WASM 扩展是现代方式。但它还是一个实验性的功能。 + +需要进行修复: + +```SQL +diff --git README.md README.md +index d14aae9c..8e11456c 100644 +--- README.md ++++ README.md +@@ -146,10 +146,10 @@ A/B testing, canary release, blue-green deployment, limit rate, defense against + - Custom routing: Support users to implement routing algorithms themselves. + + - **Multi-Language support** +- - Apache APISIX is a multi-language gateway for plugin development and provides support via `WASM` and `RPC`. ++ - Apache APISIX is a multi-language gateway for plugin development and provides support via `RPC` and `WASM`. +  +- - The WASM or WebAssembly, is the modern way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. +- - The RPC way, is a traditional way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The RPC way, is the current way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The WASM or WebAssembly, is an experimental way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. + + - **Serverless** + - [Lua functions](docs/en/latest/plugins/serverless.md): Invoke functions in each phase in APISIX. +diff --git docs/zh/latest/README.md docs/zh/latest/README.md +index 7f8a1e24..f50b8b5b 100644 +--- docs/zh/latest/README.md ++++ docs/zh/latest/README.md +@@ -145,10 +145,10 @@ A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵 + - 自定义路由: 支持用户自己实现路由算法。 + + - **多语言支持** +- - Apache APISIX 是一个通过 `WASM` 和 `RPC` 支持不同语言来进行插件开发的网关. ++ - Apache APISIX 是一个通过 `RPC` 和 `WASM` 支持不同语言来进行插件开发的网关. +  +- - WASM 或 WebAssembly 是比较现代的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 +- - RPC 是一种比较传统的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - RPC 是当前采用的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - WASM 或 WebAssembly 是实验性的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 + + - **Serverless** + - [Lua functions](plugins/serverless.md): 能在 APISIX 每个阶段调用 lua 函数. +``` + +## 近期功能特性亮点 + +- [kafka-logger 支持记录请求体](https://github.com/apache/apisix/pull/5501)(贡献者: [windyrjc](https://github.com/windyrjc)) + +- [新增 azure-functions 插件,与 Azure Serverless Function 无缝集成](https://github.com/apache/apisix/pull/5479)(贡献者: [bisakhmondal](https://github.com/bisakhmondal)) + +- [WASM 插件支持在 header_filter 阶段运行](https://github.com/apache/apisix/pull/5544)(贡献者: [spacewander](https://github.com/spacewander)) + +- [新增 google-cloud-logging 插件,用于推送日志到 Google Cloud logging Service](https://github.com/apache/apisix/pull/5538)(贡献者: [shuaijinchao](https://github.com/shuaijinchao)) + +- [新增 openwhisk 插件,与 Apache OpenWhisk serverless 平台集成](https://github.com/apache/apisix/pull/5518)(贡献者: [bzp2010](https://github.com/bzp2010)) + +- [kafka-logger 和 http 支持记录响应体](https://github.com/apache/apisix/pull/5550)(贡献者: [dmsolr](https://github.com/dmsolr)) + +- [在 APISIX Ingress 中对于 HTTPS 和 gRPCs 类型的 upstream 丰富了 mTLS 的支持](https://github.com/apache/apisix-ingress-controller/pull/755)(贡献者: [nic-6443](https://github.com/nic-6443)) Review comment: : ########## File path: website/i18n/zh/docusaurus-plugin-content-blog/2021/12/02/weekly-report-1130.md ########## @@ -0,0 +1,174 @@ +--- +title: "社区双周报|11.15-11.30 功能亮点更新进行中" +keywords: +- Apache APISIX +- 社区周报 +- APISIX +- API Gateway +- 贡献者 +description: “独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。 +tags: [Events] +--- + +> 从 11.15 到 11.30, 有 37 位开发者为 Apache APISIX 提交了 87 个 commits。感谢这些小伙伴为 Apache APISIX 添砖加瓦,是你们的无私付出,让 Apache APISIX 项目变得更好! + +<!--truncate--> + +## 导语 + +Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界最活跃的开源 API 网关项目。这些成就,离不开社区小伙伴们的共同奋斗。 + +“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的进展,方便大家参与到 Apache APISIX 社区中来。 + +我们还整理了一些适合新来社区的小伙伴们参加的 issue!感兴趣的同学们,走过路过不要错过! + +## 贡献者统计 + + + + + +## Good first issue + +### Issue #5451 + +**链接**: https://github.com/apache/apisix/issues/5451 + +**问题描述**:Nginx自带的响应内容替换库可以替换局部内容:http://nginx.org/en/docs/http/ngx_http_sub_module.html + +```Nginx +sub_filter '<a href="http://127.0.0.1:8080/' '<a href="https://$host/'; +``` + +有个支持正则替换的库(印象中Openresty已默认支持):ngx_http_substitutions_filter_module,可以通过正则表达式来替换内容: + +```Nginx +subs_filter_types text/html text/css text/xml; +subs_filter st(\d*).example.com $1.example.com ir; +subs_filter a.example.com s.example.com; +subs_filter http://$host https://$host; +``` + +但是 APISIX 的 response-rewrite 插件文档,好像只能支持完整替换,相当于直接将所有响应都换成插件设置的返回,并不支持部分内容替换: + +```Bash +curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' +{ + "methods": ["GET"], + "uri": "/test/index.html", + "plugins": { + "response-rewrite": { + "body": "{\"code\":\"ok\",\"message\":\"new json body\"}", + "headers": { + "X-Server-id": 3, + "X-Server-status": "on", + "X-Server-balancer_addr": "$balancer_ip:$balancer_port" + }, + "vars":[ + [ "status","==","200" ] + ] + } + }, + "upstream": { + "type": "roundrobin", + "nodes": { + "127.0.0.1:80": 1 + } + } +}' +``` + +这个插件是否支持部分替换或正则替换?如果不支持,APISIX 有没有其他解决方案呢? + +### Issue #5647 + +**链接**: https://github.com/apache/apisix/issues/5647 + +**问题描述**:当前文档提供了在 CentOS7 上直接使用 RPM 安装 APISIX 的方法,但是当前 APISIX 已经将依赖切换为 apisix-base 版本,没有提供 RPM 安装方法,会导致安装失败。 + +是否可以添加用于安装 apisix-base 的 RPM 的命令。 + + + +### Issue #5649 + +**链接**: https://github.com/apache/apisix/issues/5649 + +**问题描述**:问题描述:目前,README 文件声称 WASM 扩展是现代方式。但它还是一个实验性的功能。 + +需要进行修复: + +```SQL +diff --git README.md README.md +index d14aae9c..8e11456c 100644 +--- README.md ++++ README.md +@@ -146,10 +146,10 @@ A/B testing, canary release, blue-green deployment, limit rate, defense against + - Custom routing: Support users to implement routing algorithms themselves. + + - **Multi-Language support** +- - Apache APISIX is a multi-language gateway for plugin development and provides support via `WASM` and `RPC`. ++ - Apache APISIX is a multi-language gateway for plugin development and provides support via `RPC` and `WASM`. +  +- - The WASM or WebAssembly, is the modern way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. +- - The RPC way, is a traditional way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The RPC way, is the current way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The WASM or WebAssembly, is an experimental way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. + + - **Serverless** + - [Lua functions](docs/en/latest/plugins/serverless.md): Invoke functions in each phase in APISIX. +diff --git docs/zh/latest/README.md docs/zh/latest/README.md +index 7f8a1e24..f50b8b5b 100644 +--- docs/zh/latest/README.md ++++ docs/zh/latest/README.md +@@ -145,10 +145,10 @@ A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵 + - 自定义路由: 支持用户自己实现路由算法。 + + - **多语言支持** +- - Apache APISIX 是一个通过 `WASM` 和 `RPC` 支持不同语言来进行插件开发的网关. ++ - Apache APISIX 是一个通过 `RPC` 和 `WASM` 支持不同语言来进行插件开发的网关. +  +- - WASM 或 WebAssembly 是比较现代的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 +- - RPC 是一种比较传统的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - RPC 是当前采用的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - WASM 或 WebAssembly 是实验性的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 + + - **Serverless** + - [Lua functions](plugins/serverless.md): 能在 APISIX 每个阶段调用 lua 函数. +``` + +## 近期功能特性亮点 + +- [kafka-logger 支持记录请求体](https://github.com/apache/apisix/pull/5501)(贡献者: [windyrjc](https://github.com/windyrjc)) + +- [新增 azure-functions 插件,与 Azure Serverless Function 无缝集成](https://github.com/apache/apisix/pull/5479)(贡献者: [bisakhmondal](https://github.com/bisakhmondal)) + +- [WASM 插件支持在 header_filter 阶段运行](https://github.com/apache/apisix/pull/5544)(贡献者: [spacewander](https://github.com/spacewander)) + +- [新增 google-cloud-logging 插件,用于推送日志到 Google Cloud logging Service](https://github.com/apache/apisix/pull/5538)(贡献者: [shuaijinchao](https://github.com/shuaijinchao)) Review comment: ditto : ########## File path: website/blog/2021/12/02/weekly-report-1130.md ########## @@ -0,0 +1,186 @@ +--- +title: Biweekly Report|11.15-11.30 Feature Highlights Update in Progress +keywords: +- Apache APISIX +- Weekly Report +- Contributor +- APISIX +- API Gateway +- Apache +description: The Apache APISIX Community Weekly Report hopes to help community members better understand the weekly progress of the Apache APISIX community and and facilitate everyone to participate in the Apache APISIX community. +tags: [Events] +--- + +> From 11.15 to 11.30, 37 contributors submitted 87 commits for Apache APISIX. Thank you all for your contributions to Apache APISIX. It is your selfless contribution to make the Apache APISIX project better! + +<!--truncate--> + +## Introduction + +Apache APISIX has grown as a community from the first day of open source and has quickly become the most active open source API gateway project in the world. These achievements cannot be achieved without the joint efforts of our community partners. + +"If you want to go fast, go alone.If you want to go far, go together." The Apache APISIX Community Weekly Report hopes to help community members better understand the weekly progress of the Apache APISIX community and and facilitate everyone to participate in the Apache APISIX community. + +We have also compiled some issues suitable for newcomers to the community to participate in! If you are interested, don't miss it! + +## Contributor Statistics + + + + + +## Good first issue + +### Issue #5451 + +**Link**: https://github.com/apache/apisix/issues/5451 + +**Issue description**: + +Nginx comes with a response content replacement library that can replace partial content: http://nginx.org/en/docs/http/ngx_http_sub_module.html + +```Nginx +sub_filter '<a href="http://127.0.0.1:8080/' '<a href="https://$host/'; +``` + +There is a library that supports regular substitution (as I remember Openresty already supports it by default): ngx_http_substitutions_filter_module, which can replace content with regular expressions: ngx_http_substitutions_filter_module + +```Nginx +subs_filter_types text/html text/css text/xml; +subs_filter st(\d*).example.com $1.example.com ir; +subs_filter a.example.com s.example.com; +subs_filter http://$host https://$host; +``` + +However, it seems that APISIX's response-rewrite plugin only supports full replacement, which is equivalent to directly replacing all responses with the return set by the plugin, and does not support partial content replacement: + +```Bash Review comment: ```suggestion ```shell ``` ########## File path: website/i18n/zh/docusaurus-plugin-content-blog/2021/12/02/weekly-report-1130.md ########## @@ -0,0 +1,174 @@ +--- +title: "社区双周报|11.15-11.30 功能亮点更新进行中" +keywords: +- Apache APISIX +- 社区周报 +- APISIX +- API Gateway +- 贡献者 +description: “独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。 +tags: [Events] +--- + +> 从 11.15 到 11.30, 有 37 位开发者为 Apache APISIX 提交了 87 个 commits。感谢这些小伙伴为 Apache APISIX 添砖加瓦,是你们的无私付出,让 Apache APISIX 项目变得更好! + +<!--truncate--> + +## 导语 + +Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界最活跃的开源 API 网关项目。这些成就,离不开社区小伙伴们的共同奋斗。 + +“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的进展,方便大家参与到 Apache APISIX 社区中来。 + +我们还整理了一些适合新来社区的小伙伴们参加的 issue!感兴趣的同学们,走过路过不要错过! + +## 贡献者统计 + + + + + +## Good first issue + +### Issue #5451 + +**链接**: https://github.com/apache/apisix/issues/5451 + +**问题描述**:Nginx自带的响应内容替换库可以替换局部内容:http://nginx.org/en/docs/http/ngx_http_sub_module.html + +```Nginx +sub_filter '<a href="http://127.0.0.1:8080/' '<a href="https://$host/'; +``` + +有个支持正则替换的库(印象中Openresty已默认支持):ngx_http_substitutions_filter_module,可以通过正则表达式来替换内容: + +```Nginx +subs_filter_types text/html text/css text/xml; +subs_filter st(\d*).example.com $1.example.com ir; +subs_filter a.example.com s.example.com; +subs_filter http://$host https://$host; +``` + +但是 APISIX 的 response-rewrite 插件文档,好像只能支持完整替换,相当于直接将所有响应都换成插件设置的返回,并不支持部分内容替换: + +```Bash +curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' +{ + "methods": ["GET"], + "uri": "/test/index.html", + "plugins": { + "response-rewrite": { + "body": "{\"code\":\"ok\",\"message\":\"new json body\"}", + "headers": { + "X-Server-id": 3, + "X-Server-status": "on", + "X-Server-balancer_addr": "$balancer_ip:$balancer_port" + }, + "vars":[ + [ "status","==","200" ] + ] + } + }, + "upstream": { + "type": "roundrobin", + "nodes": { + "127.0.0.1:80": 1 + } + } +}' +``` + +这个插件是否支持部分替换或正则替换?如果不支持,APISIX 有没有其他解决方案呢? + +### Issue #5647 + +**链接**: https://github.com/apache/apisix/issues/5647 + +**问题描述**:当前文档提供了在 CentOS7 上直接使用 RPM 安装 APISIX 的方法,但是当前 APISIX 已经将依赖切换为 apisix-base 版本,没有提供 RPM 安装方法,会导致安装失败。 + +是否可以添加用于安装 apisix-base 的 RPM 的命令。 + + + +### Issue #5649 + +**链接**: https://github.com/apache/apisix/issues/5649 + +**问题描述**:问题描述:目前,README 文件声称 WASM 扩展是现代方式。但它还是一个实验性的功能。 + +需要进行修复: + +```SQL +diff --git README.md README.md +index d14aae9c..8e11456c 100644 +--- README.md ++++ README.md +@@ -146,10 +146,10 @@ A/B testing, canary release, blue-green deployment, limit rate, defense against + - Custom routing: Support users to implement routing algorithms themselves. + + - **Multi-Language support** +- - Apache APISIX is a multi-language gateway for plugin development and provides support via `WASM` and `RPC`. ++ - Apache APISIX is a multi-language gateway for plugin development and provides support via `RPC` and `WASM`. +  +- - The WASM or WebAssembly, is the modern way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. +- - The RPC way, is a traditional way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The RPC way, is the current way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The WASM or WebAssembly, is an experimental way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. + + - **Serverless** + - [Lua functions](docs/en/latest/plugins/serverless.md): Invoke functions in each phase in APISIX. +diff --git docs/zh/latest/README.md docs/zh/latest/README.md +index 7f8a1e24..f50b8b5b 100644 +--- docs/zh/latest/README.md ++++ docs/zh/latest/README.md +@@ -145,10 +145,10 @@ A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵 + - 自定义路由: 支持用户自己实现路由算法。 + + - **多语言支持** +- - Apache APISIX 是一个通过 `WASM` 和 `RPC` 支持不同语言来进行插件开发的网关. ++ - Apache APISIX 是一个通过 `RPC` 和 `WASM` 支持不同语言来进行插件开发的网关. +  +- - WASM 或 WebAssembly 是比较现代的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 +- - RPC 是一种比较传统的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - RPC 是当前采用的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - WASM 或 WebAssembly 是实验性的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 + + - **Serverless** + - [Lua functions](plugins/serverless.md): 能在 APISIX 每个阶段调用 lua 函数. +``` + +## 近期功能特性亮点 + +- [kafka-logger 支持记录请求体](https://github.com/apache/apisix/pull/5501)(贡献者: [windyrjc](https://github.com/windyrjc)) + +- [新增 azure-functions 插件,与 Azure Serverless Function 无缝集成](https://github.com/apache/apisix/pull/5479)(贡献者: [bisakhmondal](https://github.com/bisakhmondal)) + +- [WASM 插件支持在 header_filter 阶段运行](https://github.com/apache/apisix/pull/5544)(贡献者: [spacewander](https://github.com/spacewander)) Review comment: ditto : ########## File path: website/i18n/zh/docusaurus-plugin-content-blog/2021/12/02/weekly-report-1130.md ########## @@ -0,0 +1,174 @@ +--- +title: "社区双周报|11.15-11.30 功能亮点更新进行中" +keywords: +- Apache APISIX +- 社区周报 +- APISIX +- API Gateway +- 贡献者 +description: “独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。 +tags: [Events] +--- + +> 从 11.15 到 11.30, 有 37 位开发者为 Apache APISIX 提交了 87 个 commits。感谢这些小伙伴为 Apache APISIX 添砖加瓦,是你们的无私付出,让 Apache APISIX 项目变得更好! + +<!--truncate--> + +## 导语 + +Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界最活跃的开源 API 网关项目。这些成就,离不开社区小伙伴们的共同奋斗。 + +“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的进展,方便大家参与到 Apache APISIX 社区中来。 + +我们还整理了一些适合新来社区的小伙伴们参加的 issue!感兴趣的同学们,走过路过不要错过! + +## 贡献者统计 + + + + + +## Good first issue + +### Issue #5451 + +**链接**: https://github.com/apache/apisix/issues/5451 + +**问题描述**:Nginx自带的响应内容替换库可以替换局部内容:http://nginx.org/en/docs/http/ngx_http_sub_module.html + +```Nginx +sub_filter '<a href="http://127.0.0.1:8080/' '<a href="https://$host/'; +``` + +有个支持正则替换的库(印象中Openresty已默认支持):ngx_http_substitutions_filter_module,可以通过正则表达式来替换内容: + +```Nginx +subs_filter_types text/html text/css text/xml; +subs_filter st(\d*).example.com $1.example.com ir; +subs_filter a.example.com s.example.com; +subs_filter http://$host https://$host; +``` + +但是 APISIX 的 response-rewrite 插件文档,好像只能支持完整替换,相当于直接将所有响应都换成插件设置的返回,并不支持部分内容替换: + +```Bash +curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' +{ + "methods": ["GET"], + "uri": "/test/index.html", + "plugins": { + "response-rewrite": { + "body": "{\"code\":\"ok\",\"message\":\"new json body\"}", + "headers": { + "X-Server-id": 3, + "X-Server-status": "on", + "X-Server-balancer_addr": "$balancer_ip:$balancer_port" + }, + "vars":[ + [ "status","==","200" ] + ] + } + }, + "upstream": { + "type": "roundrobin", + "nodes": { + "127.0.0.1:80": 1 + } + } +}' +``` + +这个插件是否支持部分替换或正则替换?如果不支持,APISIX 有没有其他解决方案呢? + +### Issue #5647 + +**链接**: https://github.com/apache/apisix/issues/5647 + +**问题描述**:当前文档提供了在 CentOS7 上直接使用 RPM 安装 APISIX 的方法,但是当前 APISIX 已经将依赖切换为 apisix-base 版本,没有提供 RPM 安装方法,会导致安装失败。 + +是否可以添加用于安装 apisix-base 的 RPM 的命令。 + + + +### Issue #5649 + +**链接**: https://github.com/apache/apisix/issues/5649 + +**问题描述**:问题描述:目前,README 文件声称 WASM 扩展是现代方式。但它还是一个实验性的功能。 + +需要进行修复: + +```SQL +diff --git README.md README.md +index d14aae9c..8e11456c 100644 +--- README.md ++++ README.md +@@ -146,10 +146,10 @@ A/B testing, canary release, blue-green deployment, limit rate, defense against + - Custom routing: Support users to implement routing algorithms themselves. + + - **Multi-Language support** +- - Apache APISIX is a multi-language gateway for plugin development and provides support via `WASM` and `RPC`. ++ - Apache APISIX is a multi-language gateway for plugin development and provides support via `RPC` and `WASM`. +  +- - The WASM or WebAssembly, is the modern way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. +- - The RPC way, is a traditional way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The RPC way, is the current way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The WASM or WebAssembly, is an experimental way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. + + - **Serverless** + - [Lua functions](docs/en/latest/plugins/serverless.md): Invoke functions in each phase in APISIX. +diff --git docs/zh/latest/README.md docs/zh/latest/README.md +index 7f8a1e24..f50b8b5b 100644 +--- docs/zh/latest/README.md ++++ docs/zh/latest/README.md +@@ -145,10 +145,10 @@ A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵 + - 自定义路由: 支持用户自己实现路由算法。 + + - **多语言支持** +- - Apache APISIX 是一个通过 `WASM` 和 `RPC` 支持不同语言来进行插件开发的网关. ++ - Apache APISIX 是一个通过 `RPC` 和 `WASM` 支持不同语言来进行插件开发的网关. +  +- - WASM 或 WebAssembly 是比较现代的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 +- - RPC 是一种比较传统的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - RPC 是当前采用的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - WASM 或 WebAssembly 是实验性的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 + + - **Serverless** + - [Lua functions](plugins/serverless.md): 能在 APISIX 每个阶段调用 lua 函数. +``` + +## 近期功能特性亮点 + +- [kafka-logger 支持记录请求体](https://github.com/apache/apisix/pull/5501)(贡献者: [windyrjc](https://github.com/windyrjc)) + +- [新增 azure-functions 插件,与 Azure Serverless Function 无缝集成](https://github.com/apache/apisix/pull/5479)(贡献者: [bisakhmondal](https://github.com/bisakhmondal)) Review comment: ```suggestion - [新增 azure-functions 插件,与 Azure Serverless Function 无缝集成](https://github.com/apache/apisix/pull/5479)(贡献者:[bisakhmondal](https://github.com/bisakhmondal)) ``` ########## File path: website/i18n/zh/docusaurus-plugin-content-blog/2021/12/02/weekly-report-1130.md ########## @@ -0,0 +1,174 @@ +--- +title: "社区双周报|11.15-11.30 功能亮点更新进行中" +keywords: +- Apache APISIX +- 社区周报 +- APISIX +- API Gateway +- 贡献者 +description: “独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。 +tags: [Events] +--- + +> 从 11.15 到 11.30, 有 37 位开发者为 Apache APISIX 提交了 87 个 commits。感谢这些小伙伴为 Apache APISIX 添砖加瓦,是你们的无私付出,让 Apache APISIX 项目变得更好! + +<!--truncate--> + +## 导语 + +Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界最活跃的开源 API 网关项目。这些成就,离不开社区小伙伴们的共同奋斗。 + +“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的进展,方便大家参与到 Apache APISIX 社区中来。 + +我们还整理了一些适合新来社区的小伙伴们参加的 issue!感兴趣的同学们,走过路过不要错过! + +## 贡献者统计 + + + + + +## Good first issue + +### Issue #5451 + +**链接**: https://github.com/apache/apisix/issues/5451 + +**问题描述**:Nginx自带的响应内容替换库可以替换局部内容:http://nginx.org/en/docs/http/ngx_http_sub_module.html + +```Nginx +sub_filter '<a href="http://127.0.0.1:8080/' '<a href="https://$host/'; +``` + +有个支持正则替换的库(印象中Openresty已默认支持):ngx_http_substitutions_filter_module,可以通过正则表达式来替换内容: + +```Nginx +subs_filter_types text/html text/css text/xml; +subs_filter st(\d*).example.com $1.example.com ir; +subs_filter a.example.com s.example.com; +subs_filter http://$host https://$host; +``` + +但是 APISIX 的 response-rewrite 插件文档,好像只能支持完整替换,相当于直接将所有响应都换成插件设置的返回,并不支持部分内容替换: + +```Bash Review comment: ```suggestion ```shell ``` ########## File path: website/i18n/zh/docusaurus-plugin-content-blog/2021/12/02/weekly-report-1130.md ########## @@ -0,0 +1,174 @@ +--- +title: "社区双周报|11.15-11.30 功能亮点更新进行中" +keywords: +- Apache APISIX +- 社区周报 +- APISIX +- API Gateway +- 贡献者 +description: “独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。 +tags: [Events] +--- + +> 从 11.15 到 11.30, 有 37 位开发者为 Apache APISIX 提交了 87 个 commits。感谢这些小伙伴为 Apache APISIX 添砖加瓦,是你们的无私付出,让 Apache APISIX 项目变得更好! + +<!--truncate--> + +## 导语 + +Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界最活跃的开源 API 网关项目。这些成就,离不开社区小伙伴们的共同奋斗。 + +“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的进展,方便大家参与到 Apache APISIX 社区中来。 + +我们还整理了一些适合新来社区的小伙伴们参加的 issue!感兴趣的同学们,走过路过不要错过! + +## 贡献者统计 + + + + + +## Good first issue + +### Issue #5451 + +**链接**: https://github.com/apache/apisix/issues/5451 + +**问题描述**:Nginx自带的响应内容替换库可以替换局部内容:http://nginx.org/en/docs/http/ngx_http_sub_module.html + +```Nginx +sub_filter '<a href="http://127.0.0.1:8080/' '<a href="https://$host/'; +``` + +有个支持正则替换的库(印象中Openresty已默认支持):ngx_http_substitutions_filter_module,可以通过正则表达式来替换内容: + +```Nginx +subs_filter_types text/html text/css text/xml; +subs_filter st(\d*).example.com $1.example.com ir; +subs_filter a.example.com s.example.com; +subs_filter http://$host https://$host; +``` + +但是 APISIX 的 response-rewrite 插件文档,好像只能支持完整替换,相当于直接将所有响应都换成插件设置的返回,并不支持部分内容替换: + +```Bash +curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' +{ + "methods": ["GET"], + "uri": "/test/index.html", + "plugins": { + "response-rewrite": { + "body": "{\"code\":\"ok\",\"message\":\"new json body\"}", + "headers": { + "X-Server-id": 3, + "X-Server-status": "on", + "X-Server-balancer_addr": "$balancer_ip:$balancer_port" + }, + "vars":[ + [ "status","==","200" ] + ] + } + }, + "upstream": { + "type": "roundrobin", + "nodes": { + "127.0.0.1:80": 1 + } + } +}' +``` + +这个插件是否支持部分替换或正则替换?如果不支持,APISIX 有没有其他解决方案呢? + +### Issue #5647 + +**链接**: https://github.com/apache/apisix/issues/5647 + +**问题描述**:当前文档提供了在 CentOS7 上直接使用 RPM 安装 APISIX 的方法,但是当前 APISIX 已经将依赖切换为 apisix-base 版本,没有提供 RPM 安装方法,会导致安装失败。 + +是否可以添加用于安装 apisix-base 的 RPM 的命令。 + + + +### Issue #5649 + +**链接**: https://github.com/apache/apisix/issues/5649 + +**问题描述**:问题描述:目前,README 文件声称 WASM 扩展是现代方式。但它还是一个实验性的功能。 + +需要进行修复: + +```SQL +diff --git README.md README.md +index d14aae9c..8e11456c 100644 +--- README.md ++++ README.md +@@ -146,10 +146,10 @@ A/B testing, canary release, blue-green deployment, limit rate, defense against + - Custom routing: Support users to implement routing algorithms themselves. + + - **Multi-Language support** +- - Apache APISIX is a multi-language gateway for plugin development and provides support via `WASM` and `RPC`. ++ - Apache APISIX is a multi-language gateway for plugin development and provides support via `RPC` and `WASM`. +  +- - The WASM or WebAssembly, is the modern way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. +- - The RPC way, is a traditional way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The RPC way, is the current way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The WASM or WebAssembly, is an experimental way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. + + - **Serverless** + - [Lua functions](docs/en/latest/plugins/serverless.md): Invoke functions in each phase in APISIX. +diff --git docs/zh/latest/README.md docs/zh/latest/README.md +index 7f8a1e24..f50b8b5b 100644 +--- docs/zh/latest/README.md ++++ docs/zh/latest/README.md +@@ -145,10 +145,10 @@ A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵 + - 自定义路由: 支持用户自己实现路由算法。 + + - **多语言支持** +- - Apache APISIX 是一个通过 `WASM` 和 `RPC` 支持不同语言来进行插件开发的网关. ++ - Apache APISIX 是一个通过 `RPC` 和 `WASM` 支持不同语言来进行插件开发的网关. +  +- - WASM 或 WebAssembly 是比较现代的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 +- - RPC 是一种比较传统的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - RPC 是当前采用的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - WASM 或 WebAssembly 是实验性的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 + + - **Serverless** + - [Lua functions](plugins/serverless.md): 能在 APISIX 每个阶段调用 lua 函数. +``` + +## 近期功能特性亮点 + +- [kafka-logger 支持记录请求体](https://github.com/apache/apisix/pull/5501)(贡献者: [windyrjc](https://github.com/windyrjc)) + +- [新增 azure-functions 插件,与 Azure Serverless Function 无缝集成](https://github.com/apache/apisix/pull/5479)(贡献者: [bisakhmondal](https://github.com/bisakhmondal)) + +- [WASM 插件支持在 header_filter 阶段运行](https://github.com/apache/apisix/pull/5544)(贡献者: [spacewander](https://github.com/spacewander)) + +- [新增 google-cloud-logging 插件,用于推送日志到 Google Cloud logging Service](https://github.com/apache/apisix/pull/5538)(贡献者: [shuaijinchao](https://github.com/shuaijinchao)) + +- [新增 openwhisk 插件,与 Apache OpenWhisk serverless 平台集成](https://github.com/apache/apisix/pull/5518)(贡献者: [bzp2010](https://github.com/bzp2010)) + +- [kafka-logger 和 http 支持记录响应体](https://github.com/apache/apisix/pull/5550)(贡献者: [dmsolr](https://github.com/dmsolr)) Review comment: : ########## File path: website/i18n/zh/docusaurus-plugin-content-blog/2021/12/02/weekly-report-1130.md ########## @@ -0,0 +1,174 @@ +--- +title: "社区双周报|11.15-11.30 功能亮点更新进行中" +keywords: +- Apache APISIX +- 社区周报 +- APISIX +- API Gateway +- 贡献者 +description: “独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。 +tags: [Events] +--- + +> 从 11.15 到 11.30, 有 37 位开发者为 Apache APISIX 提交了 87 个 commits。感谢这些小伙伴为 Apache APISIX 添砖加瓦,是你们的无私付出,让 Apache APISIX 项目变得更好! + +<!--truncate--> + +## 导语 + +Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界最活跃的开源 API 网关项目。这些成就,离不开社区小伙伴们的共同奋斗。 + +“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的进展,方便大家参与到 Apache APISIX 社区中来。 + +我们还整理了一些适合新来社区的小伙伴们参加的 issue!感兴趣的同学们,走过路过不要错过! + +## 贡献者统计 + + + + + +## Good first issue + +### Issue #5451 + +**链接**: https://github.com/apache/apisix/issues/5451 + +**问题描述**:Nginx自带的响应内容替换库可以替换局部内容:http://nginx.org/en/docs/http/ngx_http_sub_module.html + +```Nginx +sub_filter '<a href="http://127.0.0.1:8080/' '<a href="https://$host/'; +``` + +有个支持正则替换的库(印象中Openresty已默认支持):ngx_http_substitutions_filter_module,可以通过正则表达式来替换内容: + +```Nginx +subs_filter_types text/html text/css text/xml; +subs_filter st(\d*).example.com $1.example.com ir; +subs_filter a.example.com s.example.com; +subs_filter http://$host https://$host; +``` + +但是 APISIX 的 response-rewrite 插件文档,好像只能支持完整替换,相当于直接将所有响应都换成插件设置的返回,并不支持部分内容替换: + +```Bash +curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' +{ + "methods": ["GET"], + "uri": "/test/index.html", + "plugins": { + "response-rewrite": { + "body": "{\"code\":\"ok\",\"message\":\"new json body\"}", + "headers": { + "X-Server-id": 3, + "X-Server-status": "on", + "X-Server-balancer_addr": "$balancer_ip:$balancer_port" + }, + "vars":[ + [ "status","==","200" ] + ] + } + }, + "upstream": { + "type": "roundrobin", + "nodes": { + "127.0.0.1:80": 1 + } + } +}' +``` + +这个插件是否支持部分替换或正则替换?如果不支持,APISIX 有没有其他解决方案呢? + +### Issue #5647 + +**链接**: https://github.com/apache/apisix/issues/5647 + +**问题描述**:当前文档提供了在 CentOS7 上直接使用 RPM 安装 APISIX 的方法,但是当前 APISIX 已经将依赖切换为 apisix-base 版本,没有提供 RPM 安装方法,会导致安装失败。 + +是否可以添加用于安装 apisix-base 的 RPM 的命令。 + + + +### Issue #5649 + +**链接**: https://github.com/apache/apisix/issues/5649 + +**问题描述**:问题描述:目前,README 文件声称 WASM 扩展是现代方式。但它还是一个实验性的功能。 + +需要进行修复: + +```SQL +diff --git README.md README.md +index d14aae9c..8e11456c 100644 +--- README.md ++++ README.md +@@ -146,10 +146,10 @@ A/B testing, canary release, blue-green deployment, limit rate, defense against + - Custom routing: Support users to implement routing algorithms themselves. + + - **Multi-Language support** +- - Apache APISIX is a multi-language gateway for plugin development and provides support via `WASM` and `RPC`. ++ - Apache APISIX is a multi-language gateway for plugin development and provides support via `RPC` and `WASM`. +  +- - The WASM or WebAssembly, is the modern way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. +- - The RPC way, is a traditional way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The RPC way, is the current way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The WASM or WebAssembly, is an experimental way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. + + - **Serverless** + - [Lua functions](docs/en/latest/plugins/serverless.md): Invoke functions in each phase in APISIX. +diff --git docs/zh/latest/README.md docs/zh/latest/README.md +index 7f8a1e24..f50b8b5b 100644 +--- docs/zh/latest/README.md ++++ docs/zh/latest/README.md +@@ -145,10 +145,10 @@ A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵 + - 自定义路由: 支持用户自己实现路由算法。 + + - **多语言支持** +- - Apache APISIX 是一个通过 `WASM` 和 `RPC` 支持不同语言来进行插件开发的网关. ++ - Apache APISIX 是一个通过 `RPC` 和 `WASM` 支持不同语言来进行插件开发的网关. +  +- - WASM 或 WebAssembly 是比较现代的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 +- - RPC 是一种比较传统的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - RPC 是当前采用的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - WASM 或 WebAssembly 是实验性的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 + + - **Serverless** + - [Lua functions](plugins/serverless.md): 能在 APISIX 每个阶段调用 lua 函数. +``` Review comment: ditto, this part looks very strange, please double check ########## File path: website/i18n/zh/docusaurus-plugin-content-blog/2021/12/02/weekly-report-1130.md ########## @@ -0,0 +1,174 @@ +--- +title: "社区双周报|11.15-11.30 功能亮点更新进行中" +keywords: +- Apache APISIX +- 社区周报 +- APISIX +- API Gateway +- 贡献者 +description: “独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。 +tags: [Events] +--- + +> 从 11.15 到 11.30, 有 37 位开发者为 Apache APISIX 提交了 87 个 commits。感谢这些小伙伴为 Apache APISIX 添砖加瓦,是你们的无私付出,让 Apache APISIX 项目变得更好! + +<!--truncate--> + +## 导语 + +Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界最活跃的开源 API 网关项目。这些成就,离不开社区小伙伴们的共同奋斗。 + +“独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的进展,方便大家参与到 Apache APISIX 社区中来。 + +我们还整理了一些适合新来社区的小伙伴们参加的 issue!感兴趣的同学们,走过路过不要错过! + +## 贡献者统计 + + + + + +## Good first issue + +### Issue #5451 + +**链接**: https://github.com/apache/apisix/issues/5451 + +**问题描述**:Nginx自带的响应内容替换库可以替换局部内容:http://nginx.org/en/docs/http/ngx_http_sub_module.html + +```Nginx +sub_filter '<a href="http://127.0.0.1:8080/' '<a href="https://$host/'; +``` + +有个支持正则替换的库(印象中Openresty已默认支持):ngx_http_substitutions_filter_module,可以通过正则表达式来替换内容: + +```Nginx +subs_filter_types text/html text/css text/xml; +subs_filter st(\d*).example.com $1.example.com ir; +subs_filter a.example.com s.example.com; +subs_filter http://$host https://$host; +``` + +但是 APISIX 的 response-rewrite 插件文档,好像只能支持完整替换,相当于直接将所有响应都换成插件设置的返回,并不支持部分内容替换: + +```Bash +curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' +{ + "methods": ["GET"], + "uri": "/test/index.html", + "plugins": { + "response-rewrite": { + "body": "{\"code\":\"ok\",\"message\":\"new json body\"}", + "headers": { + "X-Server-id": 3, + "X-Server-status": "on", + "X-Server-balancer_addr": "$balancer_ip:$balancer_port" + }, + "vars":[ + [ "status","==","200" ] + ] + } + }, + "upstream": { + "type": "roundrobin", + "nodes": { + "127.0.0.1:80": 1 + } + } +}' +``` + +这个插件是否支持部分替换或正则替换?如果不支持,APISIX 有没有其他解决方案呢? + +### Issue #5647 + +**链接**: https://github.com/apache/apisix/issues/5647 + +**问题描述**:当前文档提供了在 CentOS7 上直接使用 RPM 安装 APISIX 的方法,但是当前 APISIX 已经将依赖切换为 apisix-base 版本,没有提供 RPM 安装方法,会导致安装失败。 + +是否可以添加用于安装 apisix-base 的 RPM 的命令。 + + + +### Issue #5649 + +**链接**: https://github.com/apache/apisix/issues/5649 + +**问题描述**:问题描述:目前,README 文件声称 WASM 扩展是现代方式。但它还是一个实验性的功能。 + +需要进行修复: + +```SQL +diff --git README.md README.md +index d14aae9c..8e11456c 100644 +--- README.md ++++ README.md +@@ -146,10 +146,10 @@ A/B testing, canary release, blue-green deployment, limit rate, defense against + - Custom routing: Support users to implement routing algorithms themselves. + + - **Multi-Language support** +- - Apache APISIX is a multi-language gateway for plugin development and provides support via `WASM` and `RPC`. ++ - Apache APISIX is a multi-language gateway for plugin development and provides support via `RPC` and `WASM`. +  +- - The WASM or WebAssembly, is the modern way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. +- - The RPC way, is a traditional way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The RPC way, is the current way. Developers can choose the language according to their needs and after starting an independent process with the RPC, it exchanges data with APISIX through local RPC communication. Till this moment, APISIX has support for [Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - The WASM or WebAssembly, is an experimental way. APISIX can load and run WASM bytecode via APISIX [wasm plugin](https://github.com/apache/apisix/blob/master/docs/en/latest/wasm.md) written with the [Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks). Developers only need to write the code according to the SDK and then compile it into a WASM bytecode that runs on WASM VM with APISIX. + + - **Serverless** + - [Lua functions](docs/en/latest/plugins/serverless.md): Invoke functions in each phase in APISIX. +diff --git docs/zh/latest/README.md docs/zh/latest/README.md +index 7f8a1e24..f50b8b5b 100644 +--- docs/zh/latest/README.md ++++ docs/zh/latest/README.md +@@ -145,10 +145,10 @@ A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵 + - 自定义路由: 支持用户自己实现路由算法。 + + - **多语言支持** +- - Apache APISIX 是一个通过 `WASM` 和 `RPC` 支持不同语言来进行插件开发的网关. ++ - Apache APISIX 是一个通过 `RPC` 和 `WASM` 支持不同语言来进行插件开发的网关. +  +- - WASM 或 WebAssembly 是比较现代的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 +- - RPC 是一种比较传统的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - RPC 是当前采用的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持[Java](https://github.com/apache/apisix-java-plugin-runner), [Golang](https://github.com/apache/apisix-go-plugin-runner), [Python](https://github.com/apache/apisix-python-plugin-runner) and Node.js. ++ - WASM 或 WebAssembly 是实验性的开发方式。 APISIX 能加载运行使用[Proxy WASM SDK](https://github.com/proxy-wasm/spec#sdks)编译的 WASM 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 WASM 字节码,即可运行在 APISIX 中的 WASM 虚拟机中。 + + - **Serverless** + - [Lua functions](plugins/serverless.md): 能在 APISIX 每个阶段调用 lua 函数. +``` + +## 近期功能特性亮点 + +- [kafka-logger 支持记录请求体](https://github.com/apache/apisix/pull/5501)(贡献者: [windyrjc](https://github.com/windyrjc)) + +- [新增 azure-functions 插件,与 Azure Serverless Function 无缝集成](https://github.com/apache/apisix/pull/5479)(贡献者: [bisakhmondal](https://github.com/bisakhmondal)) + +- [WASM 插件支持在 header_filter 阶段运行](https://github.com/apache/apisix/pull/5544)(贡献者: [spacewander](https://github.com/spacewander)) + +- [新增 google-cloud-logging 插件,用于推送日志到 Google Cloud logging Service](https://github.com/apache/apisix/pull/5538)(贡献者: [shuaijinchao](https://github.com/shuaijinchao)) + +- [新增 openwhisk 插件,与 Apache OpenWhisk serverless 平台集成](https://github.com/apache/apisix/pull/5518)(贡献者: [bzp2010](https://github.com/bzp2010)) Review comment: : -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
