如何知道适配器在 MobileFirst Development Server 上是否为 运行

How to know if an adapter is running on MobileFirst Development Server

有什么方法可以知道适配器是 运行 在 MobileFirst Development Server 中还是已部署到完整的服务器?

--更新--

具体来说,我想从适配器的代码本身 了解适配器是在开发人员的机器上执行还是在 WAS/Tomcat/non-development Liberty Profile

我想知道这一点,以便能够使一些用于测试的适配器程序不受保护;此测试程序看起来类似于此

function testThisAdapter() {
    if (isDevelopmentServer()) {
        return doMyTestStuff();
    } else {
        return {isSuccess: false, errors: ['nice try']};
    }
}

--更新--

这是我在 Idan 的回答中使用的内容

function isDevelopmentServer() {
    var clientRequest = WL.Server.getClientRequest();
    var url = clientRequest.getRequestURI();
    var pattern = /\/dev\/invoke/;
    return pattern.test(url);
}

更新:使用 6.3(或更早版本)Studio MoblieFirst 开发服务器时,所有适配器请求都通过开发 servlet。请求 URL 将在其中包含一个 /dev/http://serverIp:10080/my-project-name/dev/invoke?adapter=my-adapter-name&procedure=my-procedure-name。看这里:Endpoints of the MobileFirst Server production server

这是我所知道的唯一区别。我不确定您是否可以在适配器代码中使用它。也许在客户端中,如果您以某种方式设法检索此 URL 或验证其存在,那么您可以为应用程序设计适当的逻辑。


请参阅以下用户文档主题:Vitality queries for checking server health

Use IBM® Worklight® vitality queries to run a health check of your server, and determine the vitality status of your server.

You generally use the IBM Worklight vitality queries from a load balancer or from a monitoring app (for example, Patrol).

You can run vitality queries for the server as a whole, for a specific adapter, for a specific app, or for a combination of. The following table shows some examples of vitality queries.

对于适配器,查询将是:http://<server>:<port>/<publicWorkLightContext>/ws/rest/vitality?app=MyApp&adapter=MyAdapter

用户文档主题包含更多信息和示例。