随笔 - 1357  文章 - 0  评论 - 1104  阅读 - 1941万

多级缓存-OpenResty获取请求参数

OpenResty提供了各种API用来获取不同类型的请求参数:

 

在查询商品信息的请求中,通过路径占位符的方式,传递了商品id到后台:

 需求:在OpenResty中接收这个请求,并获取路径中的id信息,拼接到结果的json字符串中返回

nginx.conf配置:

复制代码
#user  nobody;
worker_processes  1;
error_log  logs/error.log;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    
    #加载lua 模块
    lua_package_path "D:/dev/openresty-1.19.9.1/lualib/?.lua;;";  
    #加载c模块     
    lua_package_cpath "D:/dev/openresty-1.19.9.1/lualib/?.so;;"; 

    server {
        listen       80;
        server_name  localhost;
        
        location ~ /api/item/(\d+) {
            # 响应类型,这里返回json
            default_type application/json;
            # 响应数据由 lua/item.lua这个文件来决定
            content_by_lua_file lua/item.lua;
        }
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
复制代码

 

编写item.lua文件:

--获取路径参数
local id=ngx.var[1]


--返回结果
ngx.say('{"id":'..id..',"name":"SALSA AIR}')

 

请求接口
http://localhost/api/item/1001
{"id":1001,"name":"SALSA AIR}

http://localhost/api/item/1002
{"id":1002,"name":"SALSA AIR}

注意id值随着请求参数变化。

posted on   Ruthless  阅读(285)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
历史上的今天:
2019-10-20 ZMA均线指标
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示