Soul,Sqlite REST服务器现在是实时的。
#node #api #sqlite #realtime

嗨,伙计们,自从我在HN上首次出版《灵魂》以来,这是一次了不起的旅程,现在我添加了一个非常重要的功能,灵魂缺乏,实时改变了Websockets。
对于那些不熟悉灵魂的人,它基本上是一个SQLITE数据库文件并在其上运行CRUD API,因此您可以没有代码的最小后端。

现在要归功于此新功能,用户可以订阅表中的更改,每当创建,更新或删除操作发生时,SOUL都会将实时数据发送给订阅者。

如果您需要一些有关如何与灵魂中的Websocket合作的示例,则可以在此处找到一堆示例:https://github.com/thevahidal/soul/blob/main/docs/ws-examples.md

请让我知道您对此新功能的看法,还提交了您面临的任何问题,以便我们尽快解决。

另外,如果您有使灵魂成为更好的工具的想法,请给我您的想法,这将对我有很大帮助。

这是实时在灵魂中工作的一个小例子:

 # Install Soul
npm install -g soul-cli 

# Install websocket client to test Soul realtime
npm i -g wscat

 # Download sample sqlite database
wget https://raw.githubusercontent.com/lerocha/chinook-database/master/ChinookDatabase/DataSources/Chinook_Sqlite.sqlite

# Run Soul
soul -d ./Chinook_Sqlite.sqlite -p 8000

# Subscribe to Employee table realtime changes
wscat -c ws://localhost:8000/ws/tables/Employee

然后在新的终端中对其进行测试,在表员工中插入新行:
要测试它,在新的终端中,在表Employee中插入新行:

curl --request POST \
  --url http://localhost:8000/api/tables/Employee/rows \
  --header 'Content-Type: application/json' \
  --data '{
    "fields": {
        "FirstName": "Damien",
        "LastName": "Rice"
    }
}'

Checkout wscat终端,它应该以以下消息响应:

{
  "type": "INSERT",
  "data": {
    "pk": 10,
    "FirstName": "Damien",
    "LastName": "Rice"
  }
}

您也可以通过更新和删除操作来测试相同的内容。

再次感谢您的支持,我将在下一个见到您!

repo:https://github.com/thevahidal/soul
HN:https://news.ycombinator.com/item?id=33484693