# openresty-api **Repository Path**: fast-dev/openresty-api ## Basic Information - **Project Name**: openresty-api - **Description**: openresty web api 1. 基于openresty 封装 api 接口 2. 基于openresty 封装 mvc 模式 - **Primary Language**: Lua - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-09-14 - **Last Updated**: 2023-04-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # lua-api lua-api 是基于openresty开发的高性能API和操作库,它提供了一种更容易表达的方式来创建集成运行在 openresty 模式下 更多功能可以参考下面的文档。 - [安装与配置](#安装与配置) - [安装 openresty](#安装-openresty) - [配置](#配置) - [DEMO](#DEMO) ## 安装与配置

您必须将这些库 perl 5.6.1+, libpcre, libssl安装在您的电脑之中。 对于 Linux来说, 您需要确认使用 ldconfig 命令,让其在您的系统环境路径中能找到它们。

Debian 和 Ubuntu 用户 推荐您使用 apt-get安装以下的开发库: ```sh apt-get install libpcre3-dev \ libssl-dev perl make build-essential curl ``` Fedora 和 RedHat 用户 推荐您使用yum安装以下的开发库: ```sh yum install pcre-devel openssl-devel gcc curl ``` ## 安装 openresty 对于一些常见的 Linux 发行版本(Ubuntu、Debian、CentOS、RHEL、Fedora、OpenSUSE、Alpine 和 Amazon Linux), OpenResty® 提供 官方预编译包。确保你首先用这种方式来安装。 对于 Mac OS X 或 macOS 用户,强烈推荐您使用 homebrew 包管理工具安装 OpenResty。可以直接使用下面 这一条命令: ```sh brew install openresty/brew/openresty ``` 如果你之前是从 homebrew/nginx 安装的 OpenResty,请先执行: ```sh brew untap homebrew/nginx ``` ## 配置 在按照上面建议的完成程序的安装之后,下面请配置 nginx.conf lua_package_path 请配置下载回来的lua-api项目目录下,这边安装目录为 /www/wwwroot/host-lua-api.com 具体路径按自己的配置 ```ini http { lua_package_path '/www/wwwroot/lua-api-api.com/library/?.lua;;'; # 扩展包 .lua lua_shared_dict ngx_cache 128m; # cache lua_shared_dict cache_lock 100k; # lock for cache } ``` 配置域名 ``` server { listen 80; server_name host-lua-api.com; location /index { lua_code_cache off; content_by_lua_file /www/wwwroot/host-lua-api.com/index.lua; } # 开启日志记录 access_log /www/logs/nginx/host-lua-api.log; error_log /www/logs/nginx/host-lua-api.error.log; } ``` 配置host ``` 127.0.0.1 host-lua-api.com ``` 配置数据库: config/database.lua ```ini return = { master = { HOST = "127.0.0.1", PORT = 3306, USER = "root", PASSWORD = "root", DATABASE = "test", }, slave = { HOST = "127.0.0.1", PORT = 3306, USER = "root", PASSWORD = "", DATABASE = "test", } } ``` 配置Redis: config/cache.lua ```ini return = { master = { host = '127.0.0.1', --端口 port = 6379, --密码 pass = '', --超时时间,如果是测试环境debug的话,这个值可以给长一点;如果是正式环境,可以设置为200 timeout = 120000, --redis的库 database = 1, }, slave = { host = '127.0.0.1', port = 6379, pass = '', timeout = 200, database = 1, } } ``` 配置 RSA 密钥 如果需要安全的接口校验,请配置RSA做接口数据验证 ```ini return = { public_key = [[ -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvvT5jLIAyiAx3Av/ItsN KvJMVGjRtb691xyvUlfB1pmSf7DO4WqitW3sYvazJ2MBk5MOTaT8hLAUtqp80vl9 ZtipWQaR27qorgWhi5dYEHt6rWGRoFQxBVw49T++XKnSo7c2JyXZl5FjUiXlF2he qYoU2hcavCPDle+GOc7q3ohFxR3uwQE66nA2aYbOcx8TaF5aGLAd+4cTuWhNa4c4 L4IQ7jwrZeE35Dux9AOIlqWIsiNc+linDWtFTydQZlrZMtEaOeh0JI0U2nUXPOJA VjnstohVw6oDXOdC8l5Thpt9ucw4UFGM73d/FJfGu0VZuLzvdr/HSUwZdYMswiKS PwIDAQAB -----END PUBLIC KEY----- ]], private_key = [[-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAvvT5jLIAyiAx3Av/ItsNKvJMVGjRtb691xyvUlfB1pmSf7DO 4WqitW3sYvazJ2MBk5MOTaT8hLAUtqp80vl9ZtipWQaR27qorgWhi5dYEHt6rWGR oFQxBVw49T++XKnSo7c2JyXZl5FjUiXlF2heqYoU2hcavCPDle+GOc7q3ohFxR3u wQE66nA2aYbOcx8TaF5aGLAd+4cTuWhNa4c4L4IQ7jwrZeE35Dux9AOIlqWIsiNc +linDWtFTydQZlrZMtEaOeh0JI0U2nUXPOJAVjnstohVw6oDXOdC8l5Thpt9ucw4 UFGM73d/FJfGu0VZuLzvdr/HSUwZdYMswiKSPwIDAQABAoIBACpFuOi4jwwvzFnW HgjtTSDwuo0FF0eQjh4Mr5Me8j47iP7TeTjVjmdzihzuWAKkHDk7GLN/jpchE7TM UQ2zRVt7IyIeHjPyQl0jyftI6anca+/t5XsEqEVzgPhpwA5rWcH8UPShoGW5Pa91 zB0+cZY+hxcwfi6gDDAo8iHh+ISCbCLRylH9wFdeRXgpIB/GBvWkVCa13pHGDui6 5phLpd19D/kQXh7TSgRruBOPsPioCwEtJrMAnky0NF2/y7WH09wjxaqViLFeWfQt 1MhBzeTTJPw2YiYaTNnIUrKO+WWVV4498mVeuwB1eVXuRtjzFJMitrSRatvFerX3 3CixAkECgYEA7pIki+N9HP01i3UBQYWV8VKkDdMq+rM2ChjIArx5yOGLo59Y3PPV 049RoUePGBycHDfCqtcxkIWZFZMHVDxBr00XyTapDlNXzkn+dINIjzlpVW36A75x f4TLlaorgPjX159Io627JgrO4uFUrWQXEnSNak/dv+Kuep4WgboiA0cCgYEAzOhV 1AL+ZNdxot2tkLkyVwbrCczuSDP6WeZ4WrhUZuKgbsC68rQVinNyEUBB0qZYIN0M WlS2jsdM6MQG+S02ShVNb4hzE4nL1qXIbEUGNWgtg+KBgODK64b9LVZJDnfD1ypM O7bTGH299vqXgEMsED57JrnnDOKfMzbOPr/GxUkCgYEA04rC3UfaqNndoMsfUfoh +tpMnfWhJqvCPzG6KLL3Sii0qWGiaknMUMvElj3dpIO56UuIUfR+/qd4FqlI1miX 1dmGPeU6AnnkYgc6mhXPQTCnNhlOmANGoMwfuZYq/TGqMogK4Rgr2o+643LqotUd oD+5JYusFXnrPM7xJhbmEgECgYBpUPDsKy29fs41O2K+A7HP8QpU2zONgMmn80Dg v+UBjHGQ+xYbMFvx8Swrma87KawaGAMFWo0KDX2GFVrQL2C76v8F2EftPuG5zTOa ElACmyzpoD2Xk/I35AW0i6i4+u15ZZAREQKmj9pXWq0Li3rWTobVfK84fDH/DKgs sDzloQKBgFP1NBGhRIB1Du/100wA5eol226UNP9FoONFUAVvLJdK1UydbWdCjYvh AjFalFJhH5Dq4bntYcvo5szJTl7wZ2B/UwGd7/m2tmyca96jblysQoh0JKfi+Tpl Yz+YGT2uVPF+EA/mUrSAN/S0m5Ngvsy96Ad2QVoRiTPHdq9gDSqo -----END RSA PRIVATE KEY-----]] } ``` ## DEMO 1.获取GET请求数据 ```sh -- 引入请求层 local request = require "request" local args = request:get() -- 返回数据 response:success("请求数据!",args) ``` 2.获取POST请求数据 ```sh -- 引入请求层 local request = require "request" -- 引入返回层 local response = require "response" local args = request:post() -- 返回数据 response:success("请求数据!",args) ``` 3.获取header参数 ```sh -- 引入请求层 local request = require "request" -- 引入返回层 local response = require "response" local header = request:header('token') -- 返回数据 response:success("请求数据!",header) ``` 4.数据签名 ```sh -- 引入请求层 local request = require "request" -- 引入返回层 local response = require "response" -- 引入RSA local rsa = require "rsa" -- 引入RSA密钥文件 local rsaconf = require "rsaconf" local args = request:post() -- 获取数据签名 local sign = response:getSign(args, rsaconf.public_key) -- 校验数据签名 local decrypted = response:getSignVerify(args, args['sign'], rsaconf.private_key) response:success("请求数据!", decrypted) ``` ## 文档 PHP开发技术交流(QQ群 368868750) [![PHP开发技术交流 (SDK)](http://pub.idqqimg.com/wpa/images/group.png)](https://qm.qq.com/cgi-bin/qm/qr?k=rfRumoZ0fxUN4TdshfjkxiHximnHVSzb&jump_from=webapi)