如何使用Purest模块(node.js)查询参数

如何使用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

我试图通过我的API请求传递一些参数,这样我就可以得到已经过滤过的数据

我正在使用一个名为的模块,它基本上是一个RESTAPI客户端库。 支持根据需要进行表达性查询调用

而且,我的API提供者是Pocket,他们的文档说明如下

contentType

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))
})