Articles of api

为node.js Web服务应用程序安装服务器

我已经构build了一个与node.js一起运行的应用程序,它允许通过REST API检索一些数据。 我想把它放在一台个人电脑上(Windows),但我不知道如何安装一台服务器,以及我需要在网上提供我的应用程序。 有人可以解释我的步骤吗? 我知道一些在线服务像Heroku一样存在,但是我想自己做。 谢谢

在Node.js中向JSON API发出GET请求?

想知道如何使用Node.js对一个JSON API做一个GET请求。 我最好想使用Express,但是这不是必须的,输出在Jade页面上。 对于Node.js和后端语言,我还是一个全新的东西。

高性能REST API – 哪种语言/堆栈?

我正在开发一个使用Ruby on Rails的网站。 我想单独开发REST API(JSON)以最大限度地提高性能,Rails堆栈只是带走了太多。 那里有没有任何性能基准? 你认为什么会产生最好的performance? 我目前正在考虑以下内容,因为这是我的经验。 还有什么我应该考虑的? 它应该是轻量级的。 的node.js 斯卡拉喷雾(http://spray.io/) Ruby Sinatra 谢谢!

用于Express.js的Rest APIvalidation和会话pipe理

我一直在研究RESTful身份validation,而且我仍然不能得到一个非常清晰的想法,我怎么能devise我的networking架构! 我有很多问题没有回答 我希望我的API能够被传送到移动设备和networking,而且我正在使用Express v4 我不想使用基本身份validation,因为很多post都提出了一个简单的方法,或者我可以使用Passport中间件,但是我想使用基于令牌的身份validation或类似的或更好的东西,并且我想进行身份validation,所以我可以更好地理解,但我不知道我该怎么做,或者如果我明白了解! 我将在下面简化我的预期身份validation架构: 新用户的注册 客户端 发布用户名和密码到服务器(我知道如果你想使连接安全的是使用https连接,否则我会暴露我的凭据,或者你有任何其他选项除了https?否则我将需要使用公共和带有时间戳的私钥,并在发送给服务器之前散列我的凭证??我怎么做呢?或者其他更好的select?) 服务器端 使用盐密码对密码进行哈希处理,存储哈希密码和salt,然后生成一个令牌ID并发送给客户端! 而令牌ID存储在会话中或使用REDIS数据库? 是不是使用会话再次违反REST? 但是,如果我不使用会话,我怎么能存储令牌ID并与客户端进行比较? 客户端 由于现在我有令牌ID,我怎样才能存储在我的客户端? 我应该使用Cookie吗? 如果是的话,这不会违反RESTful? 以及我的手机应用程序如何存储cookie? 我还有什么其他的select,除了cookie,我不能想到任何! 授权API 客户端 现在,我有令牌ID,每当我想向服务器发送请求时,我都会将其放置在授权头中。 服务器端 当收到请求时,服务器将检查令牌API,并将其与会话令牌进行比较,如果为真,则请求允许拒绝 这是一个快速应用程序授权的标准方式? 对于这篇冗长的文章我感到抱歉,但是我觉得我应该真正掌握authentication和授权,因为它很重要! 我希望有人能纠正我对REST authenticatino的误解,并回答我的问题,或者build议我一个更好的方法来做到这一点!

如何使用Express / Node.js将图像发送到客户端?

我正在编写一个简单的Express API与Google Places API集成,并试图将地点照片发送到客户端,但无法使其工作。 Google Places API的回复如下所示: 响应对象还包含一个headers属性。 我试过像这样发回图像: router.get('/photo/:photoRef', function (req, res) { var params = { maxwidth: 400, photoreference: req.params.photoRef, key: key }; var url = baseUrl + 'photo?' + querystring.stringify(params); request(url, function (error, response, body) { if (!error && response.statusCode == 200) { res.type(response.headers['content-type']); res.send(response.body); } }); }); 但似乎并不奏效。 我得到以下图像: 任何帮助将不胜感激。

如何validation服务器端的js节点的谷歌身份validation令牌?

我的前端应用程序使用Gmail帐户进行身份validation 。 validation成功后,我检索id_token ,并将其作为授权标头发送为承载令牌 。 例如http:// localhost:4000 / api 授权持票人token_id 在nodejs服务器端,我调用以下方法来validation令牌。 exports.verifyUser = function(req, res, next) { var GoogleAuth = require('google-auth-library'); var auth = new GoogleAuth(); var client = new auth.OAuth2(config.passport.google.clientID, config.passport.google.clientSecret, config.passport.google.callbackURL); // check header or url parameters or post parameters for token var token = ""; var tokenHeader = req.headers["authorization"]; var items = […]

Node.js代理能够更改响应头并注入额外的请求数据

我正在编写一个node.js代理服务器,向不同域中的API提供请求。 我想使用节点HTTP代理 ,我已经find了一种方法来修改响应头 。 但有没有办法修改条件(即添加API密钥)的请求数据,并考虑到可能有不同的方法请求 – GET , POST , UPDATE , DELETE ? 或者,也许我搞乱了node-http-proxy的目的,有什么更适合我的目的?

多个Firebases实例

我尝试制作多个new Firebase(url);时遇到问题new Firebase(url); 实例。 例如: var token1 = "c.AdASdsAsds…"; var token2 = "c.dkasdEddss…"; var v1 = new Firebase('https://developer-api.nest.com'); v1.auth(token1,function(err){ console.log("Connected 1 "+err); },function(err){ console.log("Cancel 1: "+err); }); var v2 = new Firebase('https://developer-api.nest.com'); v2.auth(token2,function(err){ console.log("Connected 2 "+err); },function(err){ console.log("Cancel 2 "+err); }); 控制台日志: Connected 2 null ,这就是..没有更多。 所以,这意味着它永远不会从v1.auth();调用callback函数v1.auth(); 它忽略它,它看起来像被v2.auth();覆盖v2.auth(); 即使它们是不同的Firebases实例,并且干扰了其他一切,例如v1.child("path").on("value",function(snapshot){}); 和v2.child("path").on("value",function(snapshot){}); 在这种情况下不起作用。

通过TVJS-tvOS调用API JSon

我正在尝试使用tvOS,并且在处理json调用方面有一些小问题。 我必须通过一个API获取一些数据,比方说为了testing,我打电话给这个链接 http://query.yahooapis.com/v1/public/yql?q=select%20item%20from%20weather.forecast%20where%20location%3D%223015%22&format=json 我试图用一些修改这个函数 function getDocument(url) { var templateXHR = new XMLHttpRequest(); templateXHR.responseType = "json"; templateXHR.open("GET", url, true); templateXHR.send(); return templateXHR; } 但没有解决。 任何提示或帮助? 如果我需要使用NodeJS,我该怎么做?

我应该如何构build我的数据库和API服务器为基于回合的多人iPhone的棋盘游戏? (考虑nodejs,mongo,沙发等)

我正在为iPhone和最终Android开发基于回合的棋盘游戏。 我正在使用Appcelerator Titanium来开发它。 我的多人游戏devise与Words With Friends类似。 准备好后,用户轮stream使用,然后相应地更新对手的游戏板。 我的需求之一是有一个消息传递API,使得玩家的设备能够在移动之后相互更新游戏板的状态。 想用JSON来做这件事,并且在包含所有游戏棋子的位置的设备上保留一个JSON对象。 这是需要在本地设备上更新的对象,然后在移动完成后将更改发送给对手的设备。 过去,我已经为移动平台完成了API,为此我使用了PHP和MySQL,并在API服务器和移动设备之间来回发送JSON。 适用于低并发用户,通常非常规的应用程序。 希望这个会变得庞大;) 所以现在,我开始考虑持久套接字,而不是一个普通的httpd服务器,而不是我的新游戏。 我也认为,放弃大型LAMP堆栈可能是明智的,而且为了可扩展性和易于开发,更多地倾向于像Mongo / Couch – > node.js – > iPhone这样的数据stream。 我会坦白的说,这将是我第一次进入非sql数据库和node.js。 有兴趣听到别人在这方面的经验和经验,有更多的select/想法,以及我是否以正确的方式思考,或只是为自己头痛。