我正在学习春季启动和使用带有JPA的REST服务器。 对于我的RestControllers,我希望在基页上有这样的行为,当有人进入基页时,他们将能够在基页下看到所有可用的RequestMappings。
@RestController
@RequestMapping("/food")
public class FoodRestController {
@RequestMapping(value = "/all", method = RequestMethod.GET)
@ResponseBody
public Iterable<Food> printAllFoods() {
return foodRepository.findAll();
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
public ResponseEntity<?> addFood(@RequestBody Food f) {
foodRepository.save(f);
HttpHeaders httpHeaders = new HttpHeaders();
return new ResponseEntity<Food>(f, httpHeaders, HttpStatus.CREATED);
}
所以对于上面的&#34; localhost:8080 / food&#34;会给出一个显示不是有效端点的页面,可能的端点是localhost:8080 / food / all或localhost:8080 / food / add。 我可以使用GET的RequestMapping并将其作为正文返回,但它将是一个手动键入的响应。想看看Spring是否提供这样的东西
答案 0 :(得分:2)
您也可以使用Swagger。它实际上是一个文档框架。它还围绕一个漂亮的UI构建,以试用随文档提供的API。
答案 1 :(得分:0)
SpringBoot Actuator已经具有这样的功能。添加SpringBoot Actuator依赖项,启动应用程序并将浏览器指向:
这将产生类似以下内容(假设为JSON),其中包含作为项目一部分的 ALL 映射(Spring端点也是如此!)。
{
...
"{[/refresh],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.cloud.endpoint.GenericPostableMvcEndpoint.invoke()"
},
"{[/restart],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.cloud.context.restart.RestartMvcEndpoint.invoke()"
},
"{[/configprops],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()"
},
"{[/env],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}": {
"bean": "endpointHandlerMapping",
"method": "public java.lang.Object org.springframework.cloud.context.environment.EnvironmentManagerMvcEndpoint.value(java.util.Map<java.lang.String, java.lang.String>)"
},
...
}
此代码段显示了一些其他Actuator端点可用的映射。
我理解你的要求有点不同,所以如果这个设置不是你所需要的,你应该能够创建自己的类似东西的端点,只需浏览{{3} }。执行映射端点大部分工作的特定文件是SpringBoot Actuator source code。