如何远程检索可用服务



我想在先验地知道它们是什么的情况下将服务集合加载到我的前端。 我假设我可以在服务器上设置钩子,该钩子只是遍历服务目录并确定服务(子目录名称)并将此信息传回。 事实上,由于app.configure(services)调用,信息应该在应用实例中?

在使用带有特殊_idget之前,我已经完成此操作,该被挂钩并返回除集合记录以外的其他信息。 我的问题是,在不知道服务名称的情况下,我如何形成被钩住的featherjs服务器的套接字请求(如get)。 我想我总是可以至少有一个已知的服务(如users),我可以将该钩子添加到其中,但只是想知道是否有办法做我想做的事情(在不知道任何服务名称的情况下找出答案)。

看起来有应用程序级别的钩子 https://docs.feathersjs.com/api/application.html#hookshooks 那么我如何通过套接字客户端调用其中一个并在客户端上获取结果。

恕我直言,这应该是客户端 API 的一部分。 这将避免对服务名称进行硬编码,也不必将它们放在客户端的某个自定义生成配置文件中。

出于安全原因,默认情况下这不可用,应以特定于应用程序的方式返回客户端上所有服务的列表。

在服务器上,您可以通过 app.services 获取所有可用服务的对象,这些对象可以通过自定义服务相当直接地提供给客户端:

app.use('/', {
async find () {
const services = Object.keys(app.services);
return { services };
}
});

现在转到根级别(/)将列出所有可用服务的名称。您可能还希望确保相应地保护呼叫,以便不是每个人都可以知道他们可以攻击的所有端点。

相关内容

  • 没有找到相关文章

最新更新