创建 Redis 的 WebAPI

首先,我们会在各种语言和框架中创建 Redis 的 WebAPI。接下来,我们来看一下规范。

Redis 在服务器上运行。

对于 key,我们将进行将 JSON 字符串保存的操作。

$ sudo systemctl status redis
● redis-server.service - Advanced key-value store
     Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; preset:>
     Active: active (running) since Mon 2023-05-29 10:45:21 JST; 6h ago
       Docs: http://redis.io/documentation,
             man:redis-server(1)
   Main PID: 1001 (redis-server)
     Status: "Ready to accept connections"
      Tasks: 5 (limit: 37674)
     Memory: 6.8M
        CPU: 20.807s
     CGroup: /system.slice/redis-server.service
             └─1001 "/usr/bin/redis-server 127.0.0.1:6379"

以下是要创建的三个 API。方法是 POST 。

提供一个键来读取值。
提供键和值(JSON字符串)进行写入。
键的列表。

考试脚本。

假设在服务器端有以下程序。

http://localhost/test_dir/api/redis_read.py
http://localhost/test_dir/api/redis_insert.py
http://localhost/test_dir/api/redis_list.py

程序在这里
Redis 的 WebAPI(Python CGI)

使用 curl 进行测试脚本

#
URL="http://localhost/test_dir/api/redis_read.py"
#
curl -X POST -d key=t1855 $URL
#
#
URL="http://localhost/test_dir/api/redis_insert.py"
#
curl -X POST -d key=t1855 \
-d value='{"name": "宇都宮","population": 87516,"date_mod": "2001-3-16"}' $URL
#
#
URL="http://localhost/test_dir/api/redis_list.py"
#
curl -X POST $URL
#

使用Httpie进行测试脚本

URL="http://localhost/test_dir/api/redis_read.py"
#
http --form POST $URL key=t1856
URL="http://localhost/test_dir/api/redis_insert.py"
#
http --form POST $URL key=t1856 value='{"name": "小山","population": 73125,"date_mod": "2001-6-8"}'
URL="http://localhost/test_dir/api/redis_list.py"
#
http POST $URL

使用Python编写的测试程序

#! /usr/bin/python3
# -*- coding: utf-8 -*-
#
#	test_get.py
#
#					Jan/14/2020
#
# ------------------------------------------------------------------
import  sys
import  requests
# ------------------------------------------------------------------
sys.stderr.write("*** 開始 ***\n")
#
url="http://localhost/test_dir/api/redis_read.py"
args={}
args['key'] = 't1855'
#
rr=requests.post(url,args)
print(rr.text)
#
sys.stderr.write("*** 終了 ***\n")
# ------------------------------------------------------------------
#! /usr/bin/python3
# -*- coding: utf-8 -*-
#
#	test_insert.py
#
#					Jan/14/2020
#
# ------------------------------------------------------------------
import  sys
import  requests
# ------------------------------------------------------------------
sys.stderr.write("*** 開始 ***\n")
#
url="http://localhost/test_dir/api/redis_insert.py"
args={}
args['key'] = 't1855'
args['value'] = '{"name": "宇都宮","population": 84516,"date_mod": "2001-3-16"}'
#
rr=requests.post(url,args)
print(rr.text)
#
sys.stderr.write("*** 終了 ***\n")
# ------------------------------------------------------------------
#! /usr/bin/python3
# -*- coding: utf-8 -*-
#
#	test_list.py
#
#					Jan/14/2020
#
# ------------------------------------------------------------------
import  sys
import  requests
# ------------------------------------------------------------------
sys.stderr.write("*** 開始 ***\n")
#
url="http://localhost/test_dir/api/redis_list.py"
args={}
#
rr=requests.post(url,args)
print(rr.text)
#
sys.stderr.write("*** 終了 ***\n")
# ------------------------------------------------------------------

服务器端

Redis的WebAPI(Python的CGI)
Redis的WebAPI(PHP的CGI)
Redis的WebAPI(Ruby的CGI)
Redis的WebAPI(Express)
Redis的WebAPI(oak)
Redis的WebAPI(Nuxt.js)
Redis的WebAPI(Gin)
Redis的WebAPI(FastAPI)
Redis的WebAPI(Genie)