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和查询字符串参数定义查询/搜索语法的“现有技术”。
答案 0 :(得分:19)
虽然有些人肯定会争辩,但滚动自己肯定是一种选择;只要您可以发布可使用的架构和语法或API库。鉴于您仔细研究当前的标准格局并从已建立的(虽然不合适)实施中借鉴,您(和支持者)可能倾向于产生新的或扩展的标准;或许可以解决一个未解决的问题。
答案 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)
答案 4 :(得分:3)
如果您正在寻找符合Web标准的搜索机制,我建议您查看Open Search