HAL浏览器未在列表中显示URL

时间:2019-08-14 13:27:38

标签: spring-boot spring-data-rest

我有一个带有hal浏览器的spring-data-rest项目。我拥有的方法返回List<String>,但未在hal的浏览器列表中列出。但是我可以访问它。我的方法是

@RestController
public class UtilRepository {
    private SomeClass someClass ;
    @GetMapping("/getSomething")
    List<String> getSomethingUsingRest(){
        someClass = new SomeClass();
        try {
           return Arrays.asList(someClass.getArrayOfRecords());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

我可以访问http://localhost:8080/getSomething,但是在使用Hal浏览器运行程序时,URL /getSomething没有出现在Hal浏览器中。

enter image description here

1 个答案:

答案 0 :(得分:0)

为了继续我在原始帖子中的评论,我正在编写此代码以共享代码和screesnshot。可能不是完整的答案。

这是我的控制器:

@RestController("generalController")
public class GeneralController {
    @RequestMapping(path = "/urls")
    public List<String> getUrls() {
        return Arrays.asList("http://abc", "http:def", "http://ghe");
    }
}

这是从普通浏览器中命中端点时的响应:

[
"http://abc",
"http://def",
"http://ghe"
]

以下是当HAL浏览器中的同一端点热点时的屏幕截图:

enter image description here

我跑步时没有看到任何问题。您是否可以发布完整的HAL浏览器快照,其中包括原始回复,以便我们更好地了解您的问题?

从@ashish澄清后进行更新

这就是为什么您没有在HAL浏览器中看到您的API的原因:

  • HAL浏览器通过扫描存储库(@Repository)和定义的实体(@Entity)列出链接,并在顶层形成其自己的链接。
  • 它不需要@RestController。实际上,它完全忽略了rest控制器及其所有方法。
  • 您始终可以在HAL浏览器中键入常规REST API(从@RestController公开)的完整URL,并查看结果。