我有一个休息api,我想管理我的rest api提供的URL列表。我宁愿不手动这样做。有没有人知道通过某种方式扫描其余api以编程方式生成URL列表的方法?我一直在研究这个问题并且没有提出任何问题。
答案 0 :(得分:0)
我看到两种解决方案:
静态的。我的意思是实现一个小型Java应用程序,它扫描REST应用程序的类以检测带有注释@Controller
的应用程序。然后,您可以内省该类以获取有关提供的端点的提示。请参阅以下控制器示例:
@RestController
public class GreetingController {
@RequestMapping("/greeting")
public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
return new Greeting(counter.incrementAndGet(),
String.format(template, name));
}
}
注释@RequestMapping
为您提供资源路径(路径变量包含在内部,如果有的话),@RequestParam
一个参数。
基于此,我们可以生成一些Swagger或RAML内容(或其他内容)。
有关信息,Spring提供了一种方便的方法来扫描类路径,以轻松获取具有特定注释的所有类。有关详细信息,请参阅此答案:Scanning Java annotations at runtime。
另一个可能是在执行期间。我不知道Spring是否拥有REST路由等等,就像Restlet框架那样。请参阅此链接https://restlet.com/technical-resources/restlet-framework/guide/2.3/extensions/apispark/introspector。
希望它有所帮助。 亨利