使用RESTful Web API进行数据库搜索

问题描述 投票:0回答:1

我对REST还是很陌生,但是我想做的是对我的API实现一个(不是那么简单的)搜索功能。 我想使用多个关键字(例如作者,书名,...)和不同的搜索运算符(例如〜,=,!=,...)来搜索数据库。 我正在寻找的是诸如约定,示例或“最佳实践”教程之类的方法,该方法如何在路由参数等方面以优雅的方式做到这一点。

编辑:基本上我想知道如何以一种很好的方式在URL中包括属于每个关键字的运算符。

database api rest search
1个回答
1
投票

首先检查URI模板标准。 如果对您来说足够了,并且您可以通过多个链接解决问题,那么您很幸运。

如果不是,那么您必须发回一些有关您的搜索查询的结构描述。 首先,您必须选择一种查询语言。 选择一种标准的查询语言可能更好,因此您不必创建新的查询语言。 之后,您必须发回一些有关搜索查询约束的语义(可能在RDF中)。 例如,您可以在文章标题中搜索单词,并按日期对结果进行排序,等等。。。。。。这样的客户端。客户可以使用查询语言的详细信息,约束描述和用户输入。

客户综合查询后,可以采用以下格式发送查询:

  • GET /blah?q="query details" -在单个查询参数中序列化的查询字符串,(查询语言可以是任何一种)
  • GET /blah?query=x|details=z使用URI查询语言
  • SEARCH /blah ...以正确的MIME类型发送SEARCH正文(查询语言可以是任何语言,但是请注意,SEARCH方法可能不支持缓存,因为它是旧的webdav方法,未维护标准)

因此,当前我们没有用于描述客户端查询结构的标准或RDF词汇表的关键问题,因此发送查询链接可能会违反自描述约束,并将客户端耦合到服务实现。 (对于大多数当前的API,客户端可重用性和满足REST约束都不是问题。)

© www.soinside.com 2019 - 2024. All rights reserved.