【问题标题】:Subscribing to RESTful API and getting notifications订阅 RESTful API 并获取通知
【发布时间】:2023-01-25 20:23:10
【问题描述】:

我无法从 API 以 JSON 格式接收通知。我制作了一个 SpringBoot 应用程序,它从服务器(端口:1026)的 URL 获取实体。但是,API 有一个我应该使用的订阅和通知系统。 我无法实现从 API 获取通知的实现。当我订阅 API 时,会发送一个我正在订阅的 JSON 实体,我会发送一个端点 URL(端口上的本地主机:1028),通知将在该 URL 上发送。 (实体和端点在同一个 POST 请求中以订阅 API)。 问题是我不知道如何收听该通知并将其显示在网页上,因此当在 API 上调用以更改该实体的值时,我会在服务器日志上看到通知并在我的网站上实时看到它浏览器网页。

这是需要重新编写的代码。在这里,我只是从 API 收到一个 GET 调用以查看创建了哪些实体,但是当我通过邮递员向 API 进行 PUT/POST 时,需要手动刷新才能看到更改,并且它没有使用订阅系统。 我想我需要某种来自服务器 (localhost:1026) 的 GET 侦听器才能解析实体。

try {
            
            URL url = new URL("http://localhost:1026/v2/entities");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            conn.connect();
            //Check if connection is made
            int responseCode = conn.getResponseCode();
            // 200 OK
            if (responseCode != 200) {
                throw new RuntimeException("HttpResponseCode: " + responseCode);
            } else {
                informationString = new StringBuilder();
                Scanner scanner = new Scanner(url.openStream());

                while (scanner.hasNext()) {
                    informationString.append(scanner.nextLine());
                    logger.info("Entity updated");
                }
                //Close the scanner
                scanner.close();
            
                logger.info(String.valueOf(informationString));
                //return String.valueOf(informationString);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        return String.valueOf(informationString);

【问题讨论】:

    标签: java spring spring-boot rest backend


    【解决方案1】:

    您可以在网页上使用setTimeout() 定期调用您的API 并立即显示响应

    【讨论】:

    • 我只需要在创建或更改实体时才需要通知。那是 API 将 JSON 中的实体发送到订阅中定义的端点的时候。
    猜你喜欢
    • 1970-01-01
    • 2015-06-19
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    相关资源
    最近更新 更多