OData还有其他选择吗?

时间:2011-09-12 16:50:04

标签: web-services standards odata

Netflix和Microsoft的许多产品(服务器:CRM,Sharepoint,SQL Server;客户端:Excel)都使用OData。

虽然OData很有趣,但它有自己的一系列好处和权衡。

我设计并构建了一个供内部使用的自定义搜索引擎。许多开发人员使用搜索引擎进行报告和列表,使用此搜索引擎替换每个业务线应用中的报告和自定义搜索/过滤功能。

我有一个不错的系统允许在我的搜索引擎中查询/过滤。这是所有网址驱动,因此它易于使用。

此时,我想在URL“命令行”中添加更多功能。 OData是一个诱人的选择,因为我们已经使用了很多微软技术。它还具有使用布尔逻辑等的过滤器的标准语言。

我应该看看还有其他合法的基于标准的REST框架,比如OData吗?

我不确定我需要完整的OData堆栈来处理我正在做的事情。我的基于查询字符串的简单过滤在这一点上非常有效。只是想进行一些尽职调查,以便做出明智的决定。

感谢。

修改

我正在寻找的更多是用于创建搜索API的框架。 Lucene / Solr使用url语法http://lucene.apache.org/solr/tutorial.html和OData一样。 Lucene / Solr并不是我想要的,而且对于我的场景来说太复杂了。但是,他们有一个明确定义的URL api。

我正在寻找任何其他定义好的基于url的api示例。我希望看到基于url和查询字符串参数定义查询/搜索语法的“现有技术”。

5 个答案:

答案 0 :(得分:19)

虽然有些人肯定会争辩,但滚动自己肯定是一种选择;只要您可以发布可使用的架构和语法或API库。鉴于您仔细研究当前的标准格局并从已建立的(虽然不合适)实施中借鉴,您(和支持者)可能倾向于产生新的或扩展的标准;或许可以解决一个未解决的问题。

但是,强制性的:
xkcd #927

答案 1 :(得分:9)

经过一些研究似乎没有,此时OData还没有一个很好的替代方案。

我是根据Odata的功能说的。希望我们在某些时候会看到另一种选择。

答案 2 :(得分:8)

Facebook正在开发GraphQL。可以使用JSON查询查询数据:

{
  user(id: 3500401) {
    id,
    name,
    isViewerFriend,
    profilePicture(size: 50)  {
      uri,
      width,
      height
    }
  }
}

目前无法使用。根据{{​​3}},他们计划将其作为一种规范发布。

Changelog是另一份白皮书

答案 3 :(得分:4)

谷歌正在推动GData,这似乎已经瘫痪了。

答案 4 :(得分:3)

如果您正在寻找符合Web标准的搜索机制,我建议您查看Open Search