如何使用Purest模块(node.js)查询参数
我试图通过我的API请求传递一些参数,这样我就可以得到已经过滤过的数据 我正在使用一个名为的模块,它基本上是一个RESTAPI客户端库。 支持根据需要进行表达性查询调用 而且,我的API提供者是Pocket,他们的文档说明如下 contentType如何使用Purest模块(node.js)查询参数,node.js,api,http,Node.js,Api,Http,我试图通过我的API请求传递一些参数,这样我就可以得到已经过滤过的数据 我正在使用一个名为的模块,它基本上是一个RESTAPI客户端库。 支持根据需要进行表达性查询调用 而且,我的API提供者是Pocket,他们的文档说明如下 contentType article = only return articles video = only return videos or articles with embedded videos image = only return images 排序 ne
article = only return articles
video = only return videos or articles with embedded videos
image = only return images
排序
newest = return items in order of newest to oldest
oldest = return items in order of oldest to newest
title = return items in order of title alphabetically
site = return items in order of url alphabetically
现在,我想获取视频数据,并按最新数据进行排序。
但我缺少在查询中添加这些参数的线索
下面是我尝试过的,但我收到了400个错误请求
。我也不确定在select中放什么,因为我不知道这个数据库的表名
var Purest = require('purest')
, getpocket = new Purest({provider:'getpocket'})
getpocket.query()
.select('')
.where({contentType:'video'},{sort:'newest'})
.post('get')
.auth('xxxxx', 'xxxxx')
.request(function (err, res, body) {
console.log(body);
})
Pocket的API只接受POST请求,并希望您发送一个JSON编码的请求正文:
getpocket.query()
.post('get')
.json({
consumer_key:'...',
access_token:'...',
contentType:'article',
sort:'title'
})
.request(function (err, res, body) {})
使用此提供程序时,查询API看起来有点奇怪,因为端点被称为get
,您正在向其发出POST
请求
是建立在上面的,它是完全兼容的。以下代码将产生与上述代码完全相同的结果:
getpocket.post('https://getpocket.com/v3/get', {
json: {
consumer_key:'...',
access_token:'...',
contentType:'article',
sort:'title'
}
}, function (err, res, body) {})
或者,您可以使用:
再一次,这就像一种魅力。我感到非常幸运,能够从这些模块的创建者那里得到帮助。最后,您介意在我的下一篇评论中从Pocket API站点提出这个建议吗?不确定我是否完全理解这样做。似乎很重要,因为我想避免再次请求相同的数据检索完整列表的最佳实践
最佳实践:只要可能,在检索用户列表时,您应该使用since参数,或者count和offset参数。检索列表后,应该存储当前时间(与列表响应一起提供),并在下一个列表请求中传递该时间。这样,服务器每次只需返回一个小集合(自那时以来的更改),而不是用户的整个列表。
每当处理REST API时,您都必须将结果数据缓存在自己的数据库中,并向用户显示该数据。那是和我有关的。上面的内容正好表明:如果您想保留所有历史更新的完整列表,您必须将其保存在自己的数据库中,而不是每次都从Pocket的REST API请求完整列表。因此,我们的想法是设置自己的数据库?是否有其他选择,如使用浏览器本地存储或缓存响应?我认为像我这样的简单网站不需要自己的数据库,因为数据并没有被修改或生成。事实上,我得到了无效的JSON响应,即属性名不是字符串。请看这个,它和这个答案中的请求调用有什么关系吗?
var request = require('request')
request.post('https://getpocket.com/v3/get', {
headers: {'content-type':'application/json'},
body: JSON.stringify({
consumer_key:'...',
access_token:'...',
contentType:'article',
sort:'title'
})
}, function (err, res, body) {
console.log(JSON.parse(body))
})