我试图通过我的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);
})
答案 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))
})