我正在使用来自军刀的旅行api并且不能向任何端点发出任何http请求但是1.我不明白我做错了什么。我也不确定我是否需要一个令牌,因为它只是一个测试开发者帐户,据我所知,我不需要令牌?!如果有人对saber api或api请求有一些经验(也许我的代码因其他原因而错)任何帮助都会非常感激!!谢谢!! PS。我正在使用nodejs。
适用的Api代码:
var router = require('express').Router();
var SabreDevStudio = require('sabre-dev-studio');
var sabre_dev_studio = new SabreDevStudio({
client_id: 'V1:xxx',
client_secret: 'xxx',
uri: 'https://api.test.sabre.com'
});
var options = {};
router.get('/allcities', function (req, res) {
sabre_dev_studio.get('/v1/lists/supported/shop/themes', options, function (err, data) {
if (err) {
res.status(200).send(err);
} else {
res.status(200).send(data);
}
});
});
Api电话(下方)获取所选目的地的最低票价并不起作用。在saber的文档中,我发现了这个:
获取https://api.havail.sabre.com/v1/shop/flights/cheapest/fares/DFW HTTP / 1.1 文档:https://developer.sabre.com/docs/rest_apis/air/search/flights_to/
router.get('/lowestFare', function(req,res){
sabre_dev_studio.get('/v1/shop/flights/cheapest/fares/DFW HTTP/1.1', options, function(err, data){
if (err){
res.status(200).send(err);
}
else{
res.status(200).send(data);
}
})
})
我做错了什么? 谢谢!
答案 0 :(得分:0)
为了向SOAP或HTTP saber API发送请求,您需要与Sabre客户经理交谈和/或与Sabre签订合同。他们将告知您可以访问的环境以及您可以访问的Sabre API。
我认为你只对REST API感兴趣,即HTTP REST API和Bargain Finder Max(BFM)'这是军刀中最好的低票价搜索产品,用于根据特定日期搜索最低价格的行程。 ' Bargain Finder Max(BFM)'需要激活,文档建议您联系您的Sabre客户代表寻求帮助。
首先点击here以获取用于测试目的的API密钥。注册一个帐户。
获取您的个人密钥'和共享秘密'注册后。
单击here以获取测试环境,以熟悉REST API。
最便宜的航空搜索终点是“空中搜索”的一部分。 HTTP REST API。这是一个端点,它支持HTTP GET请求,以查找可用于给定目的地的20个最低公布票价(需要目的地;目的地参数是3个字母的IATA机场代码或到达机场的城市代码,例如LAX - 洛杉矶)。您还提交了pointofsalecountry参数,该参数只是销售点的2个字母的国家/地区代码,例如US
使用API资源管理器调用对以下URI的HTTP GET请求:
https://api.test.sabre.com/v1/shop/flights/cheapest/fares/LAX?pointofsalecountry=US
就Express.js JavaScript代码而言,您已经为GET请求设置了中间件回调函数,以便' / highestFare'这反过来似乎发送HTTP GET请求到以下URL:' / v1 / shop / flights / cheapest / fares / DFW HTTP / 1.1'这不是有效的网址,并且似乎没有任何查询字符串或请求数据/选项随之发送。
请参阅此GitHub repository,其中包含使用Node.js使用saber REST API的完整示例。此处的自述文件还指出:'请注册https://developer.sabre.com联系Sabre以获取您自己的凭据。'