Tag: api

JSON API结果格式

伙计们,使用restify.js在Node.JS中devise我的第一个API。 我的背景不是webapis,请原谅我的业余问题。 无论如何,我想有res.send(data); 响应遵守http://jsonapi.org/format/,以便我的移动应用程序可以开始使用API​​调用。 此刻如果你打电话给我的api,它会返回以下格式的数据: {"Count":1,"Items":[{"dbsource":{"S":"foo"},"id":{"S":"5002820"},"name":{"S":"fnameblah,lnameblah"},"expiration":{"S":"06/13/2015"},"type":{"S":"bar"}}]} 实际上你看到的只是DynamoDB查询调用的返回。 所以问题是…你使用一个特殊的库,你可以传递数据,这将格式化并返回JSON格式的数据。 反过来,你可以通过res.send(data)将它返回给客户端,还是由我们来做'数据'JSON兼容,然后返回? 在一天结束时,我们都希望结果如下所示: { "posts": [{ "id": "1", "title": "Rails is Omakase", "links": { "author": "9", "comments": [ "5", "12", "17", "20" ] } }] } 谢谢!

Rest API与外部OAuth

我正在尝试为我的应用程序构build一个RESTful Web API。 我想知道如何使用OAuth来validation客户端。 这些客户端将是单页面应用程序(SPA)或胖客户端。 以下是我希望用户体验如何: 用户访问一个Web应用程序 登陆页面提供了一个button(Facebook,Yammer等) 用户使用外部OAuth提供程序login OAuth提供者将他redirect到返回URL 该页面加载并调用我的Web API的API 所以几个问题: 我使用什么机制来注册不同的客户端? SPA Web应用程序如何保存由OAuth提供者发布的访问令牌? 我的Web API如何使用提供给SPA Web应用程序的访问令牌并标识用户的详细信息? PS我打算使用Node.js并用Mongoose表示来构buildWeb API。

客户是否在浏览器环境中使用Restify?

我对Restify客户的目的感到困惑: http://mcavage.me/node-restify/#JsonClient 它们本身是build立在Node.js上的,正如服务器位一样。 我是否认为它们并不打算在浏览器中使用? 他们真的是服务器到服务器通信吗? 如果是这样,那么人们如何实现他们的客户端(浏览器)JS代码来调用Restify API? 直接进行GET / POST / PUT / DELETE请求,还是使用其他工具?

Express / Node应用程序的身份validationlogin体系结构

对不起,要求开放式的build筑build议。 使用connect-redis和passport.js进行会话pipe理和身份validation,在Web应用程序中处理经过身份validation的login会话的良好devise模式是什么? login服务应该提供临时令牌吗? 该标记是否应该保存到会话存储区或通过http GET? 我应该如何为客户端应用程序和其构build的API服务提供一个通用的身份validation体系结构,以便为其他应用程序提供动力?

正确的方法来转换javascriptdate时区

我正在使用以下格式返回时间值的API: 2013:02:27T06:39:25 请注意缺less时区的标识符。 从API文档: https://partner-api.groupon.com/ledger "Transaction timestamp of the ledger entry in the affiliate's time-zone.. The format is YYYY-MM-DDThh:mm:ss.. Example 2013:02:27T06:39:25" API响应时区显然是EST(子公司的时区)。 从这个派生UTC时区值的最好方法是存储在MongoDB数据库中。

使用HTTP基本身份validation保护API

我正在研究HTTP基本身份validation来保护我的Nodejs API(也使用SSL)。 我想知道是否需要用户名和密码与基本身份validation,因为我只想使用一个秘密的API密钥,将作为用户名。 我读过的资源似乎暗示两者都是必需的,但是Stripe的文档似乎暗示只有一个用户名就足够了: https://stripe.com/docs/api#authentication “ 对API进行身份validation通过HTTP基本身份validation提供,提供您的API密钥作为基本的身份validation用户名,您不需要提供密码 ”

令牌在获取访问令牌时已经使用了错误

我正在尝试设置node.js应用程序使用OAuth2.0使用Elance API我正在使用passport.js连接到elance API,到目前为止我们能够正确获取代码。 在使用api方法之前,我需要使用post请求获取请求令牌 。 但是,我收到了“ 已使用的代码 ”错误。 这是我的callback代码 app.get('/callback', passport.authenticate('elance', { failureRedirect: '/failure' }), function(req, res) { console.log('CODE : ' + req.query.code); // this is getting displayed properly var payload = { code: req.query.code, grant_type:'authorization_code', client_id: auth.CLIENT_ID, client_secret: auth.CLIENT_SECRET }; request.post('https://api.elance.com/api2/oauth/token/', payload) .then(function(response) { var x = response.getBody(); console.log('resp::::'+x); res.redirect('/success'); }); }); 我正在使用requestify执行发布请求,并没有使用/调用临时代码的服务器。 这是生成的错误: […]

通过nodejs和twitter api获取最新的推文

我正在尝试使用twitter api和node / express获取最新的5条推文,但是我没有得到任何结果,当我使用.get调用url时 我期望它返回一个JSON对象,当我调用的URL 这里是我的调用代码,从我在其他地方find的启发和答案在这里获取使用node.js和twitterAPI的最新tweets列表 var ntwitter = require('ntwitter'), credentials = require('./credentials.json'), twitter, tweets = {}; // set up our twitter objects twitter = ntwitter(credentials); tweets = twitter.get('/statuses/user_timeline.json', { screen_name: 'twitter', count: 5}); module.exports = tweets; 目前我遇到这个错误,当我启动服务器 throw new Error('FAIL: INVALID CALLBACK.'); ^ Error: FAIL: INVALID CALLBACK. at Twitter.get (/home/vagrant/app/node_modules/ntwitter/lib/twitter.js:56:11) at Object.<anonymous> (/home/vagrant/app/twitter_stream.js:10:18) at […]

Mongoose API通过_id获取数组中的嵌套项

我正在用Express和Mongoose(前面的Backbone)构buildapi。 我有一个Mongoose用户模型,其中包含一个名为“订单”的数组。 我需要设置一个将通过ID读取单个订单的创build方法。 当我导航到: http://localhost:3000/test/ 我得到以下login用户: { "__v": 0, "_id": "537d09a1fe47a00000c54514", "kittenType": "Grumpy", "local": { "petname": "Smeagol", "password": "$2a$08$X4sF5UmYZ3/2cxfRzpPcq.pphYFRKcb.6xBGupdUyUMgWJlFSr/uq", "email": "julie@gmail.com" }, "orders": [ { "title": "Big Max Fountain", "description": "Large capacity drinking fountain", "quantity": "2", "price": 500, "_id": "53837e9e681808e6ea9f9ca4", "modified": "2014-05-28T23:49:10.232Z" }, { "title": "Lotus Fountain", "description": "Tranquil pools of water", "quantity": "1", "price": […]

共享静态卡到G +圈子

我们有一个小的nodejs应用程序通过Mirror API把一张静态卡插入时间线。 一旦收到,Glass用户将与他/她的Google+圈子分享该卡片。 直到我认为XE18.3更新,当“分享”玻璃菜单突然停止显示G + Circles作为共享卡的选项时,它工作得很好。 这是否是对API的有计划的修改,如果是这样的话,现在被认为是与G + Circles共享静态卡的推荐工作stream程? 或者我只是做错了什么? 这里有一个简单的如何创build卡: $c.google.auth(user.google_tokenRefresh, function (err, token) { if (err) return console.log("ERROR #3 in tracks.add at 'get access_token from google' : " + JSON.stringify(err)); require('/node/node_modules/request').post({ url : 'https://www.googleapis.com/upload/mirror/v1/timeline', qs : { uploadType : 'multipart' }, headers : { 'Authorization' : 'Bearer ' + token.access_token }, multipart : […]