👌

RESTful API 付き XML オブジェクトデータベース | Node.js

2024/03/07に公開

ソース

https://github.com/bbsfish/xml-server.git

目的

RESTful API を備えた、オブジェクトの中身を直接視認できるデータベース

要件

・HTTPリクエスト (GET, POST, PUT, DELETE) でデータ操作
・データストアは、オブジェクトごとの単一 XML ファイル

背景

json-server の、XML版みたいなものを作りたかった

実装

Setup

1. インストール

git clone https://github.com/bbsfish/xml-server.git
cd xml-server
npm install

2. 設定ファイル(.env)作成

/xml-server
├ /lib
├ /data ← フォルダ作成!
├ .env
└ index.js

.env
PORT = 8999 # Server Port
LOGGER_LEVEL = "all" # Log level for 'log4js'
FOLDER = "./data" # Folder for XML Files
FILEFORMAT = "XML" # File Extention
USE_LOGGING = 1 # Use logging (making backup); 1 is enable, 0 is disable.
LOG_OUTPUT_FILE = "./data/backup.db" # File for logging DB

3. Launch server

node ./index.js

How to use

HTTP リクエストは、上記設定の場合、http://localhost:8999/{id}に対して行う.
idはリソースごとに一意な値である.

利用できるHTTPリクエストは、次の通りである。
1. GET データの取得
2. POST データの登録
3. PUT データの更新
4. DELETE データの削除

Tutorial

POST

例えば、このような HTTP リクエストを発行する.

URL METHOD DATA
http://localhost:8999/hogehoge POST {"name": "foo"}

すると、data フォルダに hogehoge.XML というファイルが生成される.

hogehoge.xml
<name>
    foo
</name>

GET

つぎに、次のような HTTP リクエストを発行する.

URL METHOD DATA
http://localhost:8999/hogehoge GET

この場合、もし hogehoge.xml があれば、
{"name": "foo"} というオブジェクトが返却される.

PUT, DELETE

最後に、PUT および DELETE について説明する.
PUT はデータの更新をする. もし ID が存在しない場合、なにもされない.

URL METHOD DATA
http://localhost:8999/hogehoge PUT {"name": "foo is updated!"}

DELETE はデータの削除をする. もし ID が存在しない場合、なにもされない.

URL METHOD DATA
http://localhost:8999/hogehoge DELETE

最後に

GET のフィルター機能などは一切ない. 検討中.

Discussion