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

我想知道是否有可能以编程方式发现特定API的所有端点。

例如,如果我使用浏览器或curl获取此URL: https : //api.twitter.com/1.1/

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

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

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

由于没有标准的注册表服务,因此无法以编程方式发现REST服务。

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

  • 昂首阔步
  • 人们也喜欢API Blueprint 。

一些RESTful API发布了Web应用程序描述语言资源(WADL – 发音类似于鸭子所做的步骤 – 简称)。 JAX-RS或至少Jersy webapps默认会在应用程序根URL /application.wadl上执行此操作。 Twitter的API似乎不是其中之一。 许多REST纯粹主义者会认为API应该是自我描述的,并且只需通过与它交互并查看它将为您提供的其他端点即可自我发现。

更多关于维基百科的WADL …