gpt4 book ai didi

rest - 环回 : How to Dynamically Create Custom REST Endpoints In Code (On The Fly)

转载 作者:行者123 更新时间:2023-12-01 18:37:39 25 4
gpt4 key购买 nike

我们正在使用 LoopBack REST 框架来公开我们的数据库(和业务逻辑)。我们需要允许我们的客户在数据库(单租户和 Multi-Tenancy )中创建可以通过 REST 端点访问的自定义表。所有客户都需要使用相同的公共(public)(生产)REST 端点,这些端点将暴露在多台服务器上。但是,自定义表和关联的 REST 端点需要仅供创建它们的客户访问。这意味着我们无法将自定义表的模型写入光盘。我们需要能够在我们的生产 REST 端点的上下文中动态创建一个实际的 REST 端点。

问题:我们如何在不将模型写入光盘上的 JSON 文件的情况下,在代码中动态创建自定义 REST 端点(动态)?

最佳答案

您可以创建一个 "remote method"在模型的 JS 文件中,这会在“运行时”添加 API Hook ,尽管它是在启动时。也就是说,我认为您可以随时使用相同的函数来添加端点,而不仅仅是在启动时(尽管我从未尝试过):

/common/models/MyModel.js 中

module.exports = function(MyModel){

// This is the endpoint for creating endpoints...
MyModel.addEndpoint = function(name, method, cb) {
// audit name and method...

MyModel[name] = function(options, newCb) {
// do whatever this endpoint should do...
newCb(null, 'New endpoint success!');
};

MyModel.remoteMethod(
name,
{
accepts: [{arg: 'options', type: 'object'}], // or whatever you need...
returns: {arg: 'message', type: 'string'}, // whatever it returns...
http: {verb: method}
}
);

cb(null, 'Success creating new endpoint!');
};

MyModel.remoteMethod(
'addEndpoint',
{
accepts: [
{arg: 'name', type: 'string', http: {source: 'body'}},
{arg: 'method', type: 'string', http: {source: 'body'}}
],
returns: {arg: 'message', type: 'string'},
http: {verb: 'post'}
}
);
};

关于rest - 环回 : How to Dynamically Create Custom REST Endpoints In Code (On The Fly),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28932828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com