Tag: api

利用,但不公开API(AngularJs / NodeJs)

我有一个使用API​​的AngularJs应用程序。 我用StrongLoop制作了这个API 我想要的是: 能够通过AngularJs控制器使用API​​。 不公开API端点给用户。 现在我想我会以某种方式能够与Node做到这一点,在那里我用AngularJS查询本地站点的URL,并且让Node处理路由和身份validation令牌,但是阻止用户使用我的本地URL来获取结果?

Google日历事件更改时更新数据库

我一直在实施谷歌日历API的一些function。 我有一个自定义日历有能力与谷歌日历同步。 这意味着,您可以创build和编辑日历和事件从我的仪表板到谷歌日历帐户。 我面临的主要问题是,如果我直接从我的谷歌日历更新事件。 我已经实现了推送通知,并得到这样的回应: { "Google_channel_ID": "19835150 – 0057 – 11e6 – bc9c – 1735798 ca540", "Google_channel_token": "calendar_id = 4e7 d5c20ht9lpfdtuukcsvgeq4 @group.calendar.google.com & user_id = 43e d7rxeqqce3fk09ahszc", "Google_channel_expiration": "Tue,12 Apr 2016 12: 34: 36 GMT", "Google_resource_id": "oLMEEhHAw5Xo3r2187CWykjAtm0", "Google_resource_URI": "https: //www.googleapis.com/calendar/v3/calendars/4e7d5c20ht9lpfdtuukcsvgeq4@group.calendar.google.com/events?alt=json", "Google_resource_state": "sync", "Google_message_number": "1" } 但是这个回应是非常一般的。 例如,如果我在此日历上有1000个事件,并更新完整的1000个事件。 我会收到总是相同的通知1000.我想知道,如果有可能得到哪些事件ID有变化,所以我可以执行和更新到我的数据库。 我启动手表的方式是这样的: exports.watch = function(req, res){ var […]

REST API端点命名

让我们考虑一下,我有这个模型Car : { id: id, name: name, color: color } 而关于我有这些终点,通过ID获得一辆车: GET http://example.com/api/cars/:id 和 GET http://example.com/api/cars (get all cars ) 例如,命名只能获取红色汽车的terminal的最佳做法是什么?

自定义Slack命令参数

我想自定义我的自定义斜杠命令,可以容纳多个参数。 例如,在slack api文档中给出的例子中,有一个命名为 /weather 94070 这只有一个参数 94070 我只是想知道如果我可以在那里传递多个参数 /weather 94070 Dallas 06-26-2016 我没有看到关于这个文件的任何地方。 有没有人遇到过这种情况? 谢谢

如何将API调用限制到AWS EC2上的节点应用程序

我有一个在Namecheap上托pipe的Web站点和一个在AWS EC2上的节点应用程序。 节点应用程序只处理几个API调用。 Namecheap上的网站向节点应用程序发送AJAX调用以接收机密信息。 我试图限制访问节点的应用程序只有我的网站上的Namecheap,以便没有其他人可以对节点应用程序的Ajax调用。 我怎样才能做到这一点? 感谢您的关注!

使用API​​调用阻塞nodejs

我不确定这是否是正确的方法,但我期待在for循环中创build10个API请求,并且我希望每个API请求都被阻止。 也就是说,要等到我收到响应而没有callback,然后再次遍历foor循环。 这是foor循环 for (var i=0; i< out.items.length; i++) { var object = makediffbotAPIcall(out.items[i]); console.log(object); } 请求function如下 function makediffbotAPIcall(item, array) { var url_to_send_diffbot = "string of url here"; request(url_to_send_diffbot, function (error, response, body) { if (!error && response.statusCode == 200) { var article_object = JSON.parse(body) var object = {"Title": article_object.title, "Url":article_object.url}; } }); return object; […]

如何从服务器和客户端的angular度来使用3Scale的`authrep`函数?

我正在尝试使用使用3Scale的APIpipe理的nodejs来设置原型API。 我已经能够find他们的插件集成代码,如下所示: var ThreeScale = require('3scale').Client; // keep your provider key secret var client = new ThreeScale("X"); // you will usually obtain app_id and app_key from request params client.authrep({ app_id: "Y", app_key: "Z" }, function(response){ if(response.is_success()) { // continue } else { throw new Error("not authorized " + response.error_message); } }); 这对我来说是服务器模块的一部分。 但是,我不确定客户的凭证在那个等式中。 我看到,因为客户端指向你的应用程序,这里是应用程序的密码…但实际客户端的用户名/密码怎么样!? 在哪里检查? […]

节点js错误 – 发送后无法发送标头

我正在使用ebay-api作为node-js,当我刷新页面时出于某种原因,我得到一个错误。 在控制台日志中,我收到“发送后无法发送标题”错误。 这里是我的代码,你能弄清楚为什么我在刷新时“在发送之后发送头文件”? // example simple request to FindingService:findItemsByKeywords var ebay = require('../index.js'); var http = require('http'); var express = require('express'); var app = express(); var io = require('socket.io'); app.set('port', process.env.PORT || 5000); app.get('/getEbay', function (req, res) { console.log('inside get'); // for avoiding crossbrowser-error res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization'); res.header('Content-Type', 'application/json'); var params […]

在2个端口上使用node rest api和angularJS应用程序的CORS问题

我有我的angularJS应用程序(在本地主机:9000)的古典CORS问题试图赶上我的节点服务器(在本地主机:9001) 这里我的restapi(app.js)代码: var cors = require('cors'); app.use(cors()); app.options('*', cors()); app.all('/*', function(req, res, next) { // CORS headers res.header("Access-Control-Allow-Origin", "*"); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); res.header("Access-Control-Allow-Headers", "X-Requested-With, Content-Type"); if (req.method == 'OPTIONS') { res.status(200); res.write("Allow: GET,PUT,POST,DELETE,OPTIONS"); res.end(); } else { next(); } }); 正如你所看到的,我尝试过这些解决scheme是徒劳的: Node.js和AngularJS中的CORS 当restAPI应用程序服务器(express)和Angulars js应用程序运行在不同的端口时,Cors问题 这里是webapp中简单的$ http调用: var req = { method: 'GET', url: 'localhost:9001/memories' }; $http(req). […]

Heroku H12超时错误与Node.js

目前,我正在使用Node hapijs框架开发一个REST API。 API部署在Heroku上。 在API中有一个GET端点,它发出一个get请求来从第三方检索数据并在发送回复之前处理数据。 这个特定的terminal会不时地超时。 当端点超时时, Heroku返回一个H12错误 。 一旦超时,对该端点的后续请求将导致H12错误。 我必须在Heroku上重新启动应用程序才能使端点再次工作。 API中的其他端点不会受到此错误的任何影响,即使在发生错误之后仍能继续正常工作。 在我的debugging过程中,通过查看日志,似乎有些时候,第三方API没有返回响应,导致错误。 我尝试了以下解决scheme来尝试解决问题: 我正在使用请求库来发出请求。 因此,我已经尝试将超时设置为5000毫秒,作为传入请求的选项的一部分。 它有时工作…超时被触发,端点发送与请求相关的超时错误。 这是我想要的那种行为,因为随后对端点的请求工作。 但是,有时候请求超时没有被触发,但Heroku仍然返回一个H12错误(总是在30秒之后,Heroku默认)。 之后,对该端点的后续请求将返回H12错误(也是30秒之后)。 似乎有些过程被“卡住”在Heroku上,并没有终止,直到我重新启动应用程序。 我试着给hapi.js路由configuration对象添加一个超时。 我得到了和上面相同的结果。 我一直在进行研究,并怀疑问题与这里和这里给出的描述有关。 看起来在应用程序服务器级别设置一个超时可以发送一个SIGKILL给Heroku工作人员可能会有所斩获。 在Ruby中看起来相当简单,但我找不到有关如何在Node中执行此操作的更多信息。 任何有识之士都非常感激。 我知道,向第三方提出请求时可能会发生超时。 这不是问题。 问题是terminal似乎在超时后“停滞”在Heroku上,并且变得没有反应。 谢谢您的帮助!