从localhost:8080 / api / spec JSON获取基于CoreAPI Spec的IntelliJ自动完成

时间:2018-11-21 10:57:27

标签: json intellij-idea autocomplete core-api

我们有一个提供多种API的后端。这些API也使用CoreAPI进行了描述,并且作为JSON公开给客户端。

不是将这个JSON复制到我的客户端代码中,而是如何使IntelliJ根据此端点自动完成?我们可以例如有一个EndpointManager可以在客户端中提供此JSON,而当我运行EndpointManager.getAPI().user.list.url时,我希望在我输入user.为我提供基于JSON部分的选项时自动完成

  "user": {
    "list": {
      "_type": "link",
      "url": "/user/",
      "action": "get"
    }
  }

我可以将JSON复制到我的客户端代码中,我认为IntelliJ会选择它。但是我想要一种动态的方式,这样我们就不必反复来回说“我更改了后端API结构,请获取JSON并再次提交”等。

1 个答案:

答案 0 :(得分:1)

使用if ( (millis() - regDataTimeStamp) > DB_UPDATE_INTERVAL_MS) { regData2DB(); regDataTimeStamp = millis(); } 获取JSON时,实际数据仅在运行时可用(即IDE需要评估代码以解析属性),因此使用静态代码分析无法完成解析/完成。

您可以让IDE知道运行时数据的外观。使用JSDoc注释的可能解决方案:

EndpointManager.getAPI()

另请参见https://youtrack.jetbrains.com/issue/WEB-17419#comment=27-1058451https://intellij-support.jetbrains.com/hc/en-us/community/posts/206349469-disable-unresolved-variable-on-json-object-received-by-ajax-call