大家好,
对于那些不熟悉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
让我知道您对此新功能的看法,我将在下一个中见到您。