我正在开发一个REST API,我对资源表示有个疑问。不同的资源表示(REST API)
假设我在/ app/person/{id} URI下获得了“人员”资源。我需要一个XML表示法,基本上所有对象字段都是根节点下的XML节点。现在需求表明我们还必须支持另一种由专有架构强制执行的XML表示。
问题是:在REST最佳实践下是否支持相同资源的专有内容类型(如“text/my-type”)?注意两者都是XML格式,但格式不同,最重要的是它们没有携带相同的信息(例如,一个表示可能包含其他字段,如“modified-since”)
重要!:我知道务实和保持它很简单,它比指南和“最佳实践”更重要,但我只是想知道这是在RESTful架构下走向何方。
如果您在API中指定URI命名方案(如/ app/person/{id}),那么您的API是RPC,而不是REST。 – aehlke 2009-08-18 14:05:57
@Wahnfrieden 您能否解释为什么URI命名方案意味着RPC。恕我不能赞同。/app/person/{id}是对个人资源的引用。除了说明哪里可以找到人员资源,这个URI什么也不做,完全是RESTful。当你使用URI来调用一个动作时,一个RPC URI就像/ app/dancing/dothefunkychicken?personid = {id}。 – 2009-08-18 15:34:42
@pablo是@Wahnfrieden确实知道REST是什么。问题在于很多人试图通过定义一组端点来定义REST API,就像他们定义RPC API一样。 REST API不能以这种方式工作。 REST API设计应该关注媒体类型的定义。端点与客户端以及API的RESTfulness完全无关。但是,服务器实现并不关心URL,因此在设计时很难让人们忽略它们。 – 2009-08-18 20:36:29