有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java有办法发现ReST API的所有端点吗?

我想知道是否有可能通过编程发现特定API的所有端点

例如,如果我用浏览器或卷曲器获取这个URL: https://api.twitter.com/1.1/

我可能会得到这样的JSON响应:

{"TwitterAPI":{
    "version" : 1.1,
    "GET" : {
        "search/" : ["users", "trending"],
        "users/" : ["id", "handle"]
    }
}

当然,Twitter可以选择发布或不发布这种格式。作为一个附带问题,是否有Java或Javascript库可以自动映射和发布您在控制器中创建的API路由


共 (2) 个答案

  1. # 1 楼答案

    一些RESTful API发布了一个Web应用程序描述语言资源(WADL,简称WADL,发音像鸭子走路一样)。默认情况下,JAX-RS或至少Jersy webapps将在应用程序根URL/application上执行此操作。瓦德尔。Twitter的API似乎不是其中之一。许多REST纯粹主义者认为,API应该是自我描述和自我发现的,只需与它进行交互,并查看它将为您提供哪些其他端点

    More about WADL from wikipedia...

  2. # 2 楼答案

    There is no way of programmatically discovering REST services as they do not have a standard registry service.

    除了做一些疯狂的暴力搜索之外,没有办法找到正确的URL(更不用说正确的参数了)。因此,唯一的选择是记录API。因此,到目前为止,我看到的最佳选择是: