LoopBack:如何在代码中动态创建自定义 REST 端点(即时)

2023-12-27

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

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


您可以创建一个“远程方法” http://docs.strongloop.com/display/public/LB/Remote+methods在模型的 JS 文件中,这会“在运行时”添加 API 挂钩,尽管它是在启动时进行的。也就是说,我认为您可以随时使用相同的函数添加端点,而不仅仅是在启动时(尽管我从未尝试过):

Inside /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'}
    }
  );
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LoopBack:如何在代码中动态创建自定义 REST 端点(即时) 的相关文章

  • Jersey 将 Weld 托管 bean 注入 ConstraintValidator

    我已经花了几个小时寻找解决方案来解决我的问题 但我无法让它发挥作用 我想将 Weld 管理的服务注入 ConstraintValidator 中 该 ConstraintValidator 用于验证发布到 JAX RS Rest Servi
  • WCF Rest 服务还是 ASP.NET MVC 控制器/操作?

    如果有人能提供一些关于哪种更有益的见解 我将不胜感激 WCF 中的 RESTful 服务可以提供与 ASP Net MVC 控制器相同的功能 即可以使用控制器 操作适当地形成 URL 使用其中一种比另一种有真正的好处吗 WCF休息服务将提供
  • 如何在 SoapUI 中测试使用 JWT 的 REST 服务?

    我正在实施一些 REST 服务 我所有的测试都是使用 SoapUI 进行的 最近 我决定采用 JSON Web Token JWT 进行身份验证 但我在 SoapUI 上找不到对此的任何支持 本机安装或插件 什么也没有 我发现了一些在线生成
  • C# WPF 如何动态设置属性设置方法?

    我一直在四处寻找 但似乎找不到我要找的东西 所以我会在这里尝试一下 情况 我有 MainWindow 和 MainWindowData 类 MainWindowData 中只有使用 UpdateGUI 属性定义的公共属性 public cl
  • Delphi DataSnap REST 服务器从 TStream 返回 JSON 数组,而不是二进制

    我有一个与 Android 客户端通信的 REST 服务器 我将它从 XE3 ish 升级到 Berlin 其中一个服务器方法返回一个包含 jpeg 的 TStream 并且工作得很好 很高兴将图像作为二进制图像返回 升级到 Berlin
  • 如何将 T-SQL 中的结果连接到列中?

    我正在处理一个查询 它应该给我这样的结果 Name Surname Language Date James Hetfield en gb fr 2011 01 01 Lars Ulrich gb fr ca 2011 01 01 但我的选择
  • 如何在 REST WCF 服务中接受任意 JSON 对象?

    我想实现这样的服务方法 OperationContract WebInvoke RequestFormat WebMessageFormat Json ResponseFormat WebMessageFormat Json public
  • 重置 Windows Phone 照片上传

    我正在尝试使用 RestSharp 将照片上传到 Windows Phone 7 应用程序中的 REST api 进行获取 发布 post参数如下 photo 照片 编码为多部分 表单数据 照片 相册 id 现有相册的标识符 可以是一个事件
  • Web API 的 ASP.NET MVC Core 控制器 PATCH 方法

    给定一个数据库表 Person 包含 3 列 Id 名字和姓氏 使用真实的 DbContext 时 ASP NET Core Web API MVC 控制器方法 PATCH 仅修改姓氏 看起来如何 我根本不知道如何实现它 并且找不到相关教程
  • Yammer API 限制

    Yammer Rest api 文档表示 每个应用程序每个用户在 10 秒内最多可以发出 10 个请求 问题 什么是user这里 是为当前经过身份验证的 yammer 用户发出请求的 IP 地址还是承载令牌 如果我们所有的用户都使用相同的外
  • 在 WCF Web 编程模型中,如何编写具有一组查询字符串参数(即具有相同名称)的操作协定?

    使用 WCF Web 编程模型 可以指定一个操作契约 如下所示 OperationContract WebGet ResponseFormat WebMessageFormat Xml UriTemplate SomeRequest qs1
  • C++ 插件的“最适合”动态类型匹配

    我有一个几乎所有东西都是插件的架构 该架构以图形用户界面为基础 其中每个插件都由一个 表面 即用户可以通过其与插件交互的 UI 控件 表示 这些表面也是插件 每当添加新插件时 瘦主机都会自动确定哪个可用表面与其最匹配的 UI 如何在 C 中
  • 大查询中有没有办法执行动态查询,例如sql server中的“EXEC”?

    我有一个包含 200 多个列名的表 这些列名是使用临时名称创建的 例如 custColum1 custColum200 我有一个映射表 其中包含 custColum1 custColumn200 的列表 它必须映射到该名称 例如 Table
  • 瞬态 REST 表示

    假设我有一个 RESTful 超文本驱动的服务 用于模拟冰淇淋店 为了帮助更好地管理我的商店 我希望能够显示每日报告 列出所售每种冰淇淋的数量和美元价值 看来这种报告功能可以作为名为 DailyReport 的资源公开 DailyRepor
  • D 动态数组初始化、stride和索引操作

    抱歉 这成为了有关数组的三重问题 我认为 动态 数组在 D 中确实很强大 但以下问题已经困扰我一段时间了 在 C 中 我可以轻松地分配具有指定值的数组 但在 D 中 我还没有找到这样做的方法 当然下面的内容是没有问题的 int a new
  • 将构建参数传递给 .wxs 文件以动态构建 wix 安装程序

    我是一名学生开发人员 我已经为我现在工作的公司构建了几个安装程序 所以我对WIX还是比较熟悉的 我们最近决定拥有一个构建服务器来自动构建我们的解决方案 它构建调试和发布以及混淆 和非混淆 项目 你真的不需要理解这些 您需要了解的是 我有相同
  • 自托管 WCF REST 服务和基本身份验证

    我创建了一个自托管的 WCF REST 服务 带有 WCF REST Starter Kit Preview 2 中的一些额外内容 这一切工作正常 我现在正在尝试向服务添加基本身份验证 但我在 WCF 堆栈中遇到了一些相当大的障碍 这阻止了
  • 端点按资源 swagger 注释分组?

    我正在使用 Spring 进行 REST API 开发 我有一些 API 其中有很多端点 当我打开 swagger ui 时 它看起来很拥挤 我刚刚读过this https swagger io docs specification gro
  • 动态 C#.NET Web 服务

    我在 C ASP NET 项目中使用一个类 允许用某种随机脚本语言编写的脚本动态公开 Web 服务方法 换句话说 该脚本应该能够公开具有任何签名的任何名称的方法 只要因为它是有效的 无论如何 通过这个 SOAP 接口向外界发送 能够随意添加
  • Django REST Framework:何时创建超链接资源以及何时创建嵌套资源?如何发布嵌套资源?

    我正在使用 Django REST 框架构建 REST Web API 事情进展顺利 但我偶然发现了嵌套资源的问题 起初 REST API 中的所有关系都是超链接的 例如 一篇文章看起来像这样 path http api myproject

随机推荐

  • 如何在 make 模式规则的依赖项中使用模式相关变量

    我想使用模式相关变量中的依赖项来定义 GNU make 模式规则 我想要的是这样的 exe EXE SOURCES EXE RESOURCES CSC V CSC CSCFLAGS EXE CSCFLAGS target exe out E
  • 计数后将行转换为列[重复]

    这个问题在这里已经有答案了 我有下表 Type1 Type2 A T1 A T2 A T1 A T1 A T2 A T3 B T3 B T2 B T3 B T3 我想要输出为 Type1 T1 T2 T3 A 3 2 1 B 0 1 3 我
  • 选择单选按钮组中的单选按钮

    我是 android 新手 我正在尝试使用无线电组的示例程序 我在单选组下声明了 2 个单选按钮 我想在其中选择哪个单选按钮 无线电组 因为想要在匿名类新的 onClickListener 的 if 和 elseif 条件中使用它 我尝试声
  • 从长 UTC 时间戳到 JAVA UTC 到 EST

    我正在尝试将 UTC 长时间戳转换为东部标准时间 但我完全迷失了 任何提示都会很棒 谢谢 右 尝试这个 Date estTime new Date utcTime getTime TimeZone getTimeZone EST getRa
  • Visual Studio 2012 专家模式

    如何进入专家模式 它不在 工具 下 我需要进入专家模式才能使用 观看 功能 None
  • Web API - 405 - 请求的资源不支持 http 方法“PUT”

    我有一个 Web API 项目 但无法对其启用 PUT Patch 请求 我从 fiddler 得到的回应是 HTTP 1 1 405 Method Not Allowed Cache Control no cache Pragma no
  • 逐像素复制两个图像

    我正在尝试处理深度图中的每个像素 我正在实现图像分割 我不知道如何处理深度大于 1 的图像中的像素 此示例代码将深度图逐像素复制到另一个 cv Mat 如果我将其标准化 标准化图像的深度 1 它就可以正常工作 但它不适用于深度 3 因为 a
  • Maui AppShell - 打开导航

    我在使用 Maui AppShell 时遇到一些概念问题 当我启动我的应用程序时 我想向我的用户展示 登录页面 如果未经过身份验证 入职页面 如果他们已通过身份验证 但尚未填写基本信息 否则 主视图 但 AppShell 看起来相当静态
  • Hibernate 和其他框架或规范之间有哪些差异/相似之处?

    我想知道 Hibernate 和 Java EE 5 中的简单持久性之间的区别 相似之处 我不清楚 Hibernate 是否实现了 Java EE 5 持久性实现 或者它是否是后端系统上数据表示的完全不同的方法 我对 Hibernate 及
  • 在android中设置Scrollview内的Viewpager高度

    我必须在滚动视图内显示一个视图寻呼机 寻呼机行中图像下方的图像和文本 我正在从网络下载图像 文本并显示在寻呼机行中 我将 viewpager 包装在 srollview 中以支持横向模式
  • 两种产品之间的差异最接近于零:非暴力解决方案?

    In a 挪威科学博物馆 https nordnorsk vitensenter no 我遇到了以下数学游戏 目标是放置从 0 到 9 的 10 位数字 使两种产品之间的差异最接近于零 246是目前最低分 回到家我写了以下暴力代码 impo
  • 在运行时调整 MTD 分区大小

    我正在使用嵌入式设备 并希望它们能够通过 Linux 调整 MTD 分区的大小 而无需重新启动 问题是我的 Linux 映像大小已增加 并且它所在的当前 MTD 分区 mtd0 现在太小了 但是 紧随其后的分区 mtd1 是用于存储配置信息
  • Odoo 11 在同一模型的两个不同区域添加不同的操作菜单

    在 Odoo 11 中 我想要两个具有两种不同功能的不同操作菜单 在人力资源工资单中 我想添加电子邮件工资单链接 这就是为什么我使用此代码添加电子邮件工资单操作菜单
  • solve_ivp 错误:“缺少 2 个必需的位置参数:”

    我用于solve ivp的函数定义为 def ydot t y kappa4 kappa16 使用solve ivp时如下 sol solve ivp ydot 0 10 initial condition args 50 100 我收到以
  • 如何使用 Django FileFields 在模板中显示当前文件

    我有点卡住了 我已经使用 Django 一段时间了 但我实际上似乎无法找到这个东西 这很奇怪 因为它应该是一件简单的事情 我一直在谷歌上搜索 似乎找不到解决方案 这可能是因为它很简单 问题是 我有一个 ModelForm 它有一个 File
  • Excel 工作簿的 R Download.File 问题

    我正在尝试使用 R 下载 Excel 工作簿下载文件 http stat ethz ch R manual R patched library utils html download file html功能 当我手动下载文件 使用 Inte
  • POI中如何判断文件是doc还是docx

    标题可能有点令人困惑 最简单的方法必须是通过扩展名来判断 如下所示 is represents the InputStream if filePath endsWith doc WordExtractor ex new WordExtrac
  • 显示:内联表

    IE 7 不支持display inline table 其他浏览器支持 对于替代解决方案我应该做什么 火狐和 IE8 支持display inline table IE6支持display inline table class inlin
  • 从 data.frame 到 ggplot2 图例的表达式

    我想向图例条目添加一个表达式 而不直接输入图例 因为我正在循环变量 本质上我想要这样 d lt data frame x 1 10 y 1 10 f rep c 0 74 gt 75 each 5 qplot x y data d colo
  • LoopBack:如何在代码中动态创建自定义 REST 端点(即时)

    我们使用 LoopBack REST 框架来公开我们的数据库 和业务逻辑 我们需要允许客户在数据库 单租户和多租户 中创建自定义表 这些表可以通过 REST 端点进行访问 所有客户都需要使用相同的通用 生产 REST 端点 这些端点将公开在