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

时间:2015-10-07 22:59:45

标签: node.js api http

我试图通过我的API请求传递一些参数,以便我可以获取已经过滤的数据。

我使用名为Purest的模块,它基本上是一个REST API客户端库。 它支持按Purest Query API

进行表达式查询调用

而且,我的API提供商是Pocket,他们的文档说明了以下more info here

的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 Bad Request。还不确定要选择什么,因为我不知道这个数据库的表名。

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

1 个答案:

答案 0 :(得分:1)

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请求。

Purest建立在request之上,并且与之完全兼容。以下代码将产生与上述代码完全相同的结果:

getpocket.post('https://getpocket.com/v3/get', {
  json: {
    consumer_key:'...',
    access_token:'...',
    contentType:'article',
    sort:'title'
  }
}, function (err, res, body) {})

或者,您可以改为使用request

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