Redis の WebAPI を作成


Redis の WebAPI をさまざまな言語、フレームワークで作成します。
まずは、仕様です。

1)サーバーで Redis が動いていること。

key に対して、JSON 文字列を保存するという運用をします。

$ sudo systemctl status redis
● redis-server.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor pre
   Active: active (running) since Tue 2020-01-14 12:03:10 JST; 1h 30min ago
     Docs: http://redis.io/documentation,
           man:redis-server(1)

Ubuntu での redis の動作確認コマンド

sudo systemctl status redis-server

2)作成する API は次の3つです。method は POST です。

key を与えて値の読み出し。
key と value (JSON 文字列)を与えて書き込み。
key の一覧

3) curl によるテストスクリプト

test_get.sh
#
URL="http://localhost/test_dir/api/redis_read.py"
#
curl -X POST -d key=t1855 $URL
#
test_insert.sh
#
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
#
test_list.sh
#
URL="http://localhost/test_dir/api/redis_list.py"
#
curl -X POST $URL
#

3) python によるテストスクリプト

test_get.py
#! /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")
# ------------------------------------------------------------------
test_insert.py
#! /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")
# ------------------------------------------------------------------
test_list.py
#! /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)