hf400159 commented on code in PR #8095:
URL: https://github.com/apache/apisix/pull/8095#discussion_r996377706


##########
docs/en/latest/tutorials/cache-api-responses.md:
##########
@@ -0,0 +1,222 @@
+---
+title: Cache API responses
+keywords:
+  - API Gateway
+  - Apache APISIX
+  - Cache
+  - Performance
+description: This tutorial will focus primarily on handling caching at the API 
Gateway level by using Apache APISIX API Gateway and you will learn how to use 
proxy-caching plugin to improve response efficiency for your Web or 
Microservices API.
+---
+
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
+This tutorial will focus primarily on handling caching at the API Gateway 
level by using Apache APISIX API Gateway and you will learn how to use 
proxy-caching plugin to improve response efficiency for your Web or 
Microservices API.
+
+**Here is an overview of what we cover in this walkthrough:**
+
+- ✔️ Caching in API Gateway
+- ✔️ About [Apache APISIX API 
Gateway](https://apisix.apache.org/docs/apisix/getting-started/)
+- ✔️ Run the demo project 
[apisix-dotnet-docker](https://github.com/Boburmirzo/apisix-dotnet-docker)
+- ✔️ Configure the [Proxy 
Cache](https://apisix.apache.org/docs/apisix/plugins/proxy-cache/) plugin
+- ✔️ Validate Proxy Caching
+
+## Improve performance with caching
+
+When you are building an API, you want to keep it simple and fast. Once the 
concurrent need to read the same data increase, you'll face a few issues 😐 
where you might be considering introducing **caching**:
+
+- ❌ There is latency on some API requests which is noticeably affecting the 
user's experience.
+- ❌ Fetching data from a database takes more time to respond.
+- ❌ Availability of your API is threatened by the API's high throughput.
+- ❌ There are some network failures in getting frequently accessed information 
from your API.
+
+## Caching in API Gateway
+
+[Caching](https://en.wikipedia.org/wiki/Cache_(computing)) is capable of 
storing and retrieving network requests and their corresponding responses. 
Caching happens at different levels in a web application:
+
+- Edge caching or CDN
+- Database caching
+- Server caching (API caching)
+- Browser caching
+
+**Reverse Proxy Caching** is yet another caching mechanism that is usually 
implemented inside **API Gateway**. It can reduce the number of calls made to 
your endpoint and also improve the latency of requests to your API by caching a 
response from the upstream. If the API Gateway cache has a fresh copy of the 
requested resource, it uses that copy to satisfy the request directly instead 
of making a request to the endpoint. If the cached data is not found, the 
request travels to the intended upstream services (backend services).
+
+## Apache APISIX API Gateway Proxy Caching
+
+With the help of Apache APISIX, you can enable API caching with 
[proxy-cache](https://apisix.apache.org/docs/apisix/plugins/proxy-cache/) 
plugin🔌to cache your API endpoint's responses and enhance the performance. It 
can be used together with other Plugins too and currently supports disk-based 
caching. The data to be cached can be filtered with _response codes, request 
modes_, or more complex methods using the _no_cache_ and _cache_bypass_ 
attributes. You can specify cache expiration time or a memory capacity in the 
plugin configuration as well. Please, refer to other `proxy-cache` plugin's 
[attributes](https://apisix.apache.org/docs/apisix/plugins/proxy-cache/).
+
+🙋🏼 With all this in mind, we'll look next at an example of using `proxy-cache` 
plugin offered by Apache APISIX and apply it for ASP.NET Core Web API with a 
single endpoint.
+
+## Run the demo project
+
+Until now, I assume that you have the demo project 
[apisix-dotnet-docker](https://github.com/Boburmirzo/apisix-dotnet-docker) is 
up and running. You can see the complete source code on **Github** and the 
instruction on how to build a multi-container **APISIX** via **Docker CLI**.
+
+In the **ASP.NET Core project**, there is a simple API to get all products 
list from the service layer in 
[ProductsController.cs](https://github.com/Boburmirzo/apisix-dotnet-docker/blob/main/ProductApi/Controllers/ProductsController.cs)
 file.
+
+Let's assume that this product list is usually updated only once a day and the 
endpoint receives repeated billions of requests every day to fetch the product 
list partially or all of them. In this scenario, using API caching technique 
with `proxy-cache` plugin might be really helpful🙌. For the demo purpose, we 
only enable caching for `GET` method.

Review Comment:
   ```suggestion
   Let's assume that this product list is usually updated only once a day and 
the endpoint receives repeated billions of requests every day to fetch the 
product list partially or all of them. In this scenario, using API caching 
technique with `proxy-cache` plugin might be really helpful. For the demo 
purpose, we only enable caching for `GET` method.
   ```



##########
docs/en/latest/tutorials/cache-api-responses.md:
##########
@@ -0,0 +1,222 @@
+---
+title: Cache API responses
+keywords:
+  - API Gateway
+  - Apache APISIX
+  - Cache
+  - Performance
+description: This tutorial will focus primarily on handling caching at the API 
Gateway level by using Apache APISIX API Gateway and you will learn how to use 
proxy-caching plugin to improve response efficiency for your Web or 
Microservices API.
+---
+
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
+This tutorial will focus primarily on handling caching at the API Gateway 
level by using Apache APISIX API Gateway and you will learn how to use 
proxy-caching plugin to improve response efficiency for your Web or 
Microservices API.
+
+**Here is an overview of what we cover in this walkthrough:**
+
+- ✔️ Caching in API Gateway
+- ✔️ About [Apache APISIX API 
Gateway](https://apisix.apache.org/docs/apisix/getting-started/)
+- ✔️ Run the demo project 
[apisix-dotnet-docker](https://github.com/Boburmirzo/apisix-dotnet-docker)
+- ✔️ Configure the [Proxy 
Cache](https://apisix.apache.org/docs/apisix/plugins/proxy-cache/) plugin
+- ✔️ Validate Proxy Caching
+
+## Improve performance with caching
+
+When you are building an API, you want to keep it simple and fast. Once the 
concurrent need to read the same data increase, you'll face a few issues 😐 
where you might be considering introducing **caching**:
+
+- ❌ There is latency on some API requests which is noticeably affecting the 
user's experience.
+- ❌ Fetching data from a database takes more time to respond.
+- ❌ Availability of your API is threatened by the API's high throughput.
+- ❌ There are some network failures in getting frequently accessed information 
from your API.
+
+## Caching in API Gateway
+
+[Caching](https://en.wikipedia.org/wiki/Cache_(computing)) is capable of 
storing and retrieving network requests and their corresponding responses. 
Caching happens at different levels in a web application:
+
+- Edge caching or CDN
+- Database caching
+- Server caching (API caching)
+- Browser caching
+
+**Reverse Proxy Caching** is yet another caching mechanism that is usually 
implemented inside **API Gateway**. It can reduce the number of calls made to 
your endpoint and also improve the latency of requests to your API by caching a 
response from the upstream. If the API Gateway cache has a fresh copy of the 
requested resource, it uses that copy to satisfy the request directly instead 
of making a request to the endpoint. If the cached data is not found, the 
request travels to the intended upstream services (backend services).
+
+## Apache APISIX API Gateway Proxy Caching
+
+With the help of Apache APISIX, you can enable API caching with 
[proxy-cache](https://apisix.apache.org/docs/apisix/plugins/proxy-cache/) 
plugin🔌to cache your API endpoint's responses and enhance the performance. It 
can be used together with other Plugins too and currently supports disk-based 
caching. The data to be cached can be filtered with _response codes, request 
modes_, or more complex methods using the _no_cache_ and _cache_bypass_ 
attributes. You can specify cache expiration time or a memory capacity in the 
plugin configuration as well. Please, refer to other `proxy-cache` plugin's 
[attributes](https://apisix.apache.org/docs/apisix/plugins/proxy-cache/).

Review Comment:
   ```suggestion
   With the help of Apache APISIX, you can enable API caching with 
[proxy-cache](https://apisix.apache.org/docs/apisix/plugins/proxy-cache/) 
plugin to cache your API endpoint's responses and enhance the performance. It 
can be used together with other Plugins too and currently supports disk-based 
caching. The data to be cached can be filtered with _response codes, request 
modes_, or more complex methods using the _no_cache_ and _cache_bypass_ 
attributes. You can specify cache expiration time or a memory capacity in the 
plugin configuration as well. Please, refer to other `proxy-cache` plugin's 
[attributes](https://apisix.apache.org/docs/apisix/plugins/proxy-cache/).
   ```



-- 
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]

Reply via email to