我们有一个非常大的spring mvc web应用程序,其中控制器使用@Controller注释,使用@RequestMapping注释方法.
我想创建一个测试,它会检查每个可能的url并检查返回值是否为200.
是否有可能从春天获得所有映射?
我想知道是否有可能以编程方式发现特定API的所有端点.
例如,如果我使用浏览器或卷曲获取此URL:https: //api.twitter.com/1.1/
我可能会得到类似这样的JSON响应:
{"TwitterAPI":{
"version" : 1.1,
"GET" : {
"search/" : ["users", "trending"],
"users/" : ["id", "handle"]
}
}
Run Code Online (Sandbox Code Playgroud)
当然,Twitter可以选择发布或不发布此格式.所以作为一个附带问题,是否有任何Java或Javascript库可以自动映射和发布您在控制器中创建的API路由?
是否可以使用spring boot列出我配置的所有休息端点?执行器在启动时列出所有现有路径,我想要类似于我的自定义服务,所以我可以检查启动是否正确配置了所有路径并将此信息用于客户端调用.
我该怎么做呢?我在我的服务bean上使用@Path/ @GET注释并通过注册它们ResourceConfig#registerClasses.
有没有办法查询所有路径的配置?
更新:我通过注册REST控制器
@Bean
public ResourceConfig resourceConfig() {
return new ResourceConfig() {
{
register(MyRestController.class);
}
};
}
Run Code Online (Sandbox Code Playgroud)
Update2:我希望有类似的东西
GET /rest/mycontroller/info
POST /res/mycontroller/update
...
Run Code Online (Sandbox Code Playgroud)
动机:当spring-boot应用程序启动时,我想打印出所有已注册的控制器及其路径,因此我可以停止猜测要使用哪些端点.
我有一个用弹簧靴写的休息服务.我希望在启动后获得所有端点.我怎样才能实现这一目标?我的目的是,我希望在启动后将所有端点保存到数据库(如果它们尚不存在)并使用这些端点进行授权.这些条目将注入角色,角色将用于创建令牌.
java ×3
rest ×2
spring-boot ×2
curl ×1
http ×1
javascript ×1
jersey ×1
jersey-2.0 ×1
spring-mvc ×1