Web services 如何发现RESTful Web服务?

Web services 如何发现RESTful Web服务?,web-services,rest,service,discovery,Web Services,Rest,Service,Discovery,当我想找到所需功能的“大”Web服务(基于WS-*/WSDL)时,我可以简单地在google上搜索“…文件类型:WSDL”,因为google也索引WSDL定义。或者我可以简单地使用一些已经在Web上爬网的注册中心来为我定义WSDL,例如SeekDa.com或ServiceFinder 当我想要查找RESTful Web服务(RESTful Web API)时,我可能只依赖社区,因为不可能区分RESTful Web服务的URI和其他Web资源(例如网站URL),因此任何关注的爬虫程序都无法100%

当我想找到所需功能的“大”Web服务(基于WS-*/WSDL)时,我可以简单地在google上搜索“…文件类型:WSDL”,因为google也索引WSDL定义。或者我可以简单地使用一些已经在Web上爬网的注册中心来为我定义WSDL,例如SeekDa.com或ServiceFinder

当我想要查找RESTful Web服务(RESTful Web API)时,我可能只依赖社区,因为不可能区分RESTful Web服务的URI和其他Web资源(例如网站URL),因此任何关注的爬虫程序都无法100%肯定地说:这是RESTful Web服务的URI。因此,我来到ProgrammableWeb.com,希望有人已经使用/找到了我正在寻找的服务并在那里注册

最近,我正在寻找用于缩写扩展的Web服务。我在ProgrammableWeb这样的门户网站上找不到它,因为没有人把它放在那里。最后,我被迫浏览了几个缩写词典网站,在那里挖掘和钻研,最终找到了RESTful格式的缩写网站Web服务API。那花了我很多时间


有没有其他方法可以在Web上发现RESTful Web服务?

REST Web服务有一个类似WSDL的文件:它被称为WADL。

REST的理想是服务和网页一样可消费,它们不需要注册。[必须承认,我没有完全“理解”这个宁静世界的含义,没有WSDL,没有注册,就像骑没有稳定器的自行车一样。]

在Google之前的旧网络中,我们是如何找到页面的?有效的口碑和几个关键的出发点。就我所见,REST服务基本上还处于Google之前的阶段


我不同意“不可能区分RESTful Web服务和其他Web资源的URI”-如果我们遵循链接,我们会得到某些类型的内容application/xml和application/json,不是吗?

有一个约定(例如中推荐)在服务的根目录下公开/api端点。这将返回一个XML或JSON响应,其中包含您的服务支持的“子”资源,例如/api/products

SoapUI现在可以发现其余服务。它作为代理,记录通过的所有请求/响应。拥有请求和响应SoapUI会重新创建服务的描述/定义。 现在定义可以以WADLWSDL格式存储(作为XML世界中的WSDL和XML模式)。它也可以以Swagger格式存储。我更喜欢大摇大摆。
Swagger可以直接从SoapUI存储在SwaggerHub中,这与源代码的GitHub类似。SwaggerHub是众多API管理系统之一。

谢谢。假设RESTful Web服务是用WADL描述的,这是一个好主意。但目前这只是一种想法,并不是普遍的做法。回到现实世界:我现在怎么才能找到有趣的RESTful Web服务呢?除非你了解它们,否则你就找不到。这就是WADL试图解决的问题。顺便问一下,你知道从API文档、相关网页中提取WADL定义的研究吗?有审判吗?这将是半自动生成WADL-s的好方法,并从当前缺乏RESTfulWeb服务接口的情况下提供一些平滑的过渡(进化而不是革命)。谢谢。我并没有考虑服务响应的MIME类型:-)只是一个注释:您永远无法确定应用程序/xml是在调用时生成的(作为服务响应)还是静态xml文档。所以这只是一个可能的指标。还有其他建议吗?你不需要知道。Provided it满足了您不能要求如何提供服务的URI。有些答案可以预先计算并缓存。我可能需要知道,要想从相关网站中提取功能以自动生成WADL定义,或者至少要尝试这样做。我不想把时间浪费在不是Web服务API的资源上。例如,以下似乎是一些静态数据:(使用application/xml MIME类型)。尽管它也可以随时生成。我没有看到HTTP响应的明确特性,可以说它来自Web服务(甚至是预计算和缓存),或者它是一个静态文档!在这个意义上,您有一个确认URI和一些一致性结果。如果服务实现是某个正在运行的JAVA,或者我们从磁盘中吸取信息,那么“接口”是无法区分的。它走路和嘎嘎叫就像一种休息服务,对于你来说,它是一种服务。如果响应的某些方面不符合服务的形状,那么它就不是服务——即使某些Java确实生成了它。您只能查看URI和响应,仅此而已。您无法区分静态和动态。考虑“-> {”“否”},你有指南的链接吗?这将极大地增强您的答案……这只是一种约定,如果开发人员愿意公开其端点,则完全取决于他们。