MongooseIm Rest API 与本地安装程序的连接问题

MongooseIm Rest API connection issue with local Setup

我已经设置了 mongooseim [3.3.0] ubuntu 14.04,它与 android 客户端设置完美配合。然后我需要测试用于创建空间的 REST API,然后在 运行 swagger 文档时出现此错误。

curl -X GET --header 'Accept: application/json' --header 'Authorization: Basic dXNlcjpwYXNzd29yZA==' 'http://localhost:8089/api/rooms'

curl: (52) Empty reply from server

这是与 REST 相关的 mongooseim 配置 API。

{ 8089 , ejabberd_cowboy, [
      {num_acceptors, 10},
      {transport_options, [{max_connections, 1024}]},
      {protocol_options, [{compress, true}]},
      {ssl, [{certfile, "priv/ssl/fake_cert.pem"}, {keyfile, "priv/ssl/fake_key.pem"}, {password, ""}]},
      {modules, [
          {"_", "/api/sse", lasse_handler, [mongoose_client_api_sse]},
          {"_", "/api/messages/[:with]", mongoose_client_api_messages, []},
          {"_", "/api/contacts/[:jid]", mongoose_client_api_contacts, []},
          {"_", "/api/rooms/[:id]",    mongoose_client_api_rooms, []},
          {"_", "/api/rooms/[:id]/config",    mongoose_client_api_rooms_config, []},
          {"_", "/api/rooms/:id/users/[:user]",    mongoose_client_api_rooms_users, []},
          {"_", "/api/rooms/[:id]/messages",    mongoose_client_api_rooms_messages, []}
      ]}
  ]}

这是我提到的swagger文档。 https://mongooseim.readthedocs.io/en/3.3.0/swagger/index.html

我注意到以下几点:

  1. 您提供的 curl 示例尝试通过 HTTP 向 MongooseIM 发送请求
  2. 根据您提供的配置文件部分,我可以看到 MongooseIM 需要 HTTPS 流量。

看起来将 curl 命令中的端点更改为 https://localhost:8089/api/rooms 会有所帮助。当然,如果你运行和MongooseIM在同一台机器上的命令是运行ning。否则,请将 localhost 更改为机器的正确名称或 IP 地址。

此外,在配置文件中我可以看到 REST API 配置了默认的、伪造的和自签名的证书。我强烈建议您将其更改为真实证书。为了进行测试,您需要将选项 -k 添加到 curl 命令以跳过证书验证。