现在可以扩展“ Soul”,Sqlite Rest和实时服务器。
#node #api #sqlite

大家好,
对于那些不熟悉Soul的人,正如标题所说,这是一台休息和实时服务器,基本上,它需要一个SQLite数据库文件,并为您提供一组CRUD API,与您的DB进行交互,还有一个websocket订阅其更改。所有功能都在这里是自动的,您什么也不做。

但是,如果您想创建自定义API以满足自定义需求怎么办?
现在,这要归功于灵魂扩展的第一成员“ API扩展”。使用类似于Express.js的语法,您可以添加新的自定义API以拥有您的后端!

让我们看看它如何使用一个真实示例:

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

# Install Soul
npm install -g soul-cli

好吧,让我们创建一个用于扩展的文件夹:

# Create a folder named _extensions
mkdir _extensions
cd _extensions

# make a file named api.js
touch api.js

现在复制并在api.js中复制以下代码

const hello = {
  method: 'GET',
  path: '/api/hello-soul',
  handler: (req, res, db) => {
    res.status(200).json({ 
        message: 'Hello Soul!'
    });
  },
};


module.exports = {
  hello,
};

现在让我们的延伸来奔跑

# And run it
soul -d ./Chinook_Sqlite.sqlite -p 8000 -e "/path/to/_extensions/"

好吧,让我们立即测试

curl http://localhost:8000/api/hello-soul

它应该返回

{
  "message": "Hello Soul!"
}

很棒,您刚刚创建了第一个自定义API Inside Soul!

有关更多示例在此处结帐:
https://github.com/thevahidal/soul/blob/main/docs/extensions-examples.md

很快,我们将解决新的扩展名,例如中间件和回调。因此,请务必观看灵魂的项目。

这是指向灵魂回购的链接:https://github.com/thevahidal/soul

让我知道您对此新功能的看法,我将在下一个中见到您。