2010-04-16 52 views
8

我有一个基于Rails的服务器运行多个REST服务和一个基于Rails的Web UI,它使用ActiveResource与服务器交互。其他客户端正在使用相同的服务器(例如:移动设备)。我必须为REST接口生成文档。我需要为每个服务提供服务URL,输入/输出和错误文档结构。自我记录REST接口

理想情况下,我想在服务器端使用一个拦截器,它将基于现有流量记录服务。我想知道是否有这样做的宝石。

回答

1

当您应用REST架构风格时,无需记录界面。

客户端和服务器之间的合同由所使用的介质类型确定,如果您需要任何其他附加文档,则您不是RESTful。

因此,不要担心记录您的服务,请将所有的描述性工作都放入您的媒体类型的文档中。关于媒体类型的知识是为您的服务器实现客户端所必需的。

+3

。的确,REST服务并不需要像一个典型的网络服务的WSDL,但他们确实需要一个模式。客户端需要知道任何操作的URL,HTTP方法,输入文档结构,回复结构和错误结构。我所要求的与您在YouTube RESt API或Twitter Twitter REST API中看到的API文档非常相似。例如:http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-users%C2%A0show – 2010-04-16 06:26:00

+1

可以争辩说,没有必要为REST服务指定HTTP方法,因为它可以提供来自操作类型。 但实际上,如果您有自定义操作(即非CRUD操作),最好记录预期的HTTP方法。 – 2010-04-16 06:59:35

+1

除了进入应用程序的URI(可能有很多入口URI,BTW),您提到的所有方面都需要由介质类型规范来描述。该服务完全不需要描述。例如,您基于RFC5023开发AtomPub客户端,而不是基于某些API描述。 – 2010-04-16 07:31:18

2

Darrel和Jon是正确的,我会进一步补充说,你的API应该在它的根本上被发现。应该提供读写操作。

退房乔恩·摩尔的谈话作进一步的讨论在http://vimeo.com/20781278