Tag: api

将图片上传请求转发至其他服务器

我正在尝试构build一个基于所谓的“微架构”的NodeJS REST API项目(基本上是可以完全独立运行的多个较小的NodeJS项目,但是同时工作)。 目前用户可以从应用程序上传图片,然后我的NodeJS后端进行适当的处​​理和保存。 现在,我想要做的是以下几点: 用户从应用程序中select要上传的图像 – >应用程序向“主API”端点发出请求 – >主API端点然后将此请求转发到“图像服务” – >一旦图像服务(这是一个完全不同的服务器)已成功完成,它应该返回存储图像的URL到主API服务器端点,然后返回到应用程序的信息。 我的问题是,如何将图像上传请求从一台服务器转发到另一台服务器? 理想情况下,我不希望主API临时存储图像,然后向图像服务发出请求。 我想要的是直接将Main API接收的数据转发到Image Service服务器。 我想你可以说我想将数据从一个地方“stream”到另一个地方,而不必临时存储在磁盘或内存上。 我简直就是想让它从一台服务器“隧道”到另一台服务器。 这是可能的,这是一个有效的方法吗? 我只想要1个中心点的应用程序访问,我不想它知道这个图像服务服务器。 我希望应用程序只向主API提出请求,然后根据需要调用我的其他小型服务。 我正在使用NodeJS,Express,Multer(用于图像上传)和Digital Ocean托pipe(如果这应该有所作为)。

我应该怎样限制我的POST每秒速率?

我正在使用Hapi.js构build一个API。 我的一些代码将less量的数据推送到API。 这个问题似乎是推送器代码淹没了API,我得到ECONNRESET错误 – 这意味着消息正在消失。 我打算在推送器代码中安装限速器,可能是node-rate-limiter ( 链接 )。 问题是,我应该如何设定这个限制? 我想最大限度地提高这个应用程序的性能,所以我可以很容易地尝试每小时发送数千条消息。 数据只是被转储到redis,所以我怀疑在API中的代码将是一个问题,但我仍然需要知道什么样的消息率Hapi舒适。 我需要从一些合理的东西开始,看看它是怎么回事? 也许每10毫秒1条消息? Hapi = require('hapi'); server = new (Hapi.Server); server.connection(port: config.port, routes: { cors: { origin: ['*'] } }); server.route({method: 'POST', path: '/update/{id}', …})

在NodeJS中设置API的语言

我正在尝试将DuckDuckGo即时答案Api实现到我的NodeJS应用程序中。 为此,我使用节点请求从Api请求数据。 var request = require('request'); request('http://api.duckduckgo.com/?q=Hamburg&format=json&pretty=1', function (error, response, body) { if (!error && response.statusCode == 200) { console.log(JSON.parse(body)); } }) 这给了我英文的结果,但我想用德文。 在我的浏览器中是德文。 如何更改我的代码,以便在NodeJS中使用德语获取数据? 谢谢!

我如何使用参数化过滤创build一个类似Twitter的stream媒体API?

我正在尝试开发一个与Twitter的stream式API( https://dev.twitter.com/streaming/reference/post/statuses/filter )function相同的数据streamAPI,即具有过滤function的数据stream。 我正在生成大量数据,并希望将其提供给客户端。 我知道如何制作一个为所有客户端提供相同数据的应用程序。 这相对容易。 我遇到的困难来自于允许客户指定数据filter并为每个客户提供独特的数据。 我的想法: 首先我想打开stream式HTTP请求(如Twitter)。 我可以创build一个端点来接受带有参数的GET请求(例如https://stream.example.com/v1/filter.json?track=twitter )。 根据这个答案streamAPI和Rest API? ,这不容易扩展,需要大量的资源。 然后我想用websockets,让客户端提供一个过滤信息(例如locations = -122.75,36.8,-121.75,37.8)。 但是,我找不到一个WS服务器为每个客户端分配唯一数据的好例子。 如果inheritance了tornado.websocket.WebSocketHandler或类似的实现,这个类会是什么样子? 我还考虑将数据推送到消息服务(RabbitMQ)或数据库(Redis),并在客户端连接到其独特的频道时订阅客户端。 (我想这个问题任何想法如何创build参数化的streamapi? )。 我不知道创build独特渠道的有效方法。 这似乎也过于复杂。 我宁愿在Python中这样做,但我也会考虑使用Ruby和JS实现。

如何获得自定义api的响应到jj文件在Nodejs中

我有一个使用Nodejs的问题我想要做的是如下。 我有一个API,我发送请求。 当我从API获得响应时,我想将其发送到我的index.jade文件。 我已经得到了我的API的响应,但只有在一个控制台。 不在我的HTML文件(index.jade)。 代码如下: app.js app.get('/', function(req, res) { var postData = '{'+ ' "limit": "10",'+ ' "page": 1,'+ ' "filters": {'+ ' "genre": [],'+ ' "region": "",'+ '"prices": 2,'+ ' "distance": 31,'+ ' "longitude": "4.646219",'+ ' "latitude": "52.387388",'+ ' "eves": 1,'+ '"from_date": "17-12-2015",'+ '"end_date": "18-12-2014"'+ '}'+ '}'; var options = { hostname: […]

如何使用节点js中的API密钥从REST api获取数据?

我在我的节点服务器中使用第三方REST API。 第三方API提供者给了我一个API密钥和cURL中的一个例子,如下所示: $ curl -u APIKey@https://xyzsite.com/api/v1/users 我不知道我在节点js如何做。 我尝试过,但没有运气。 我明白了 var options = { host: "xyzsite.com", path: "/api/v1/users", headers: { "Authorization": "Basic " + myAPIKey } }; https.get(options, function(res, error) { var body = ""; res.on('data', function(data) { body += data; }); res.on('end', function() { console.log(body); }); res.on('error', function(e) { console.log(e.message); }); }); 控制台消息 { […]

Instagram API:SyntaxError:意外的标记<

我正在使用“标记/媒体/最近?” Instagram API的terminal,我得到一个错误。 当发送的值不可用时,我知道我得到一个404页面,因为该标记不可用,但是如何处理该错误。 使用Twitter API,我可以search屏幕名称“hemidemisemiquaver”,它将返回我的个人资料数据作为回退,因为没有该名称的configuration文件。 使用Instagram API,它将返回一个404页面。 Instagram API文档声明我应该得到一个如下所示的响应对象: { "meta": { "error_type": "OAuthException", "code": 400, "error_message": "…" } } 我不明白为什么会这样。 你明白为什么吗? app.post('/instaInputQuery', function (req, res, next) { console.log('INPUT_QUERY: ' + typeof req.body.query); // returns string var popular_tag_search_tag_name_recent = { url: 'https://api.instagram.com/v1/tags/ ' + req.body.query + '/media/recent?access_token=' + tokenContainer[0] + '&count=200', method: 'GET' }; […]

Nodejs / Express API简单的Mocha / Chaitesting

我正在尝试为我的API构build一个testing集,这个testing集是用nodejs / express和mocha / chai开发的。 基本上,索引返回一个简单的string,我知道它的工作原理,因为我可以在我的浏览器上看到: router.get('/', function(req, res, next) { res.send('Hello World from Eclipse'); }); 然后我按照这个教程来构build这个testing: var supertest = require("supertest"); var should = require("should"); // This agent refers to PORT where program is runninng. var server = supertest.agent("http://localhost:5000"); // UNIT test begin describe("SAMPLE unit test",function(){ // #1 should return home page it("should return home […]

在调用ExpressJS REST路由时奇怪的行为

我正在制作一个包装TMDb API的简单REST服务器。 而且我正在使用MovieDB Node模块,它具有通过提供API密钥直接调用TMDb的API的function。 我有以下应用程序文件夹结构。 myproject | —configuration.json —index.js —app.js —/routes | — index.js — /movie | — index.js 在myproject/index.js ,我有一个简单的启动Express服务器的脚本, app.js是我在初始化路由的地方。 MyProject的/ app.js 路线如何初始化 var myApp = require("express")(), configuration = require("./configuration.json"); myApp.locals.tmdbApiKey = configuration.tmdbApiKey; myApp.use('/api', require('./routes')); 如上所示,服务器的API根目录为localhost:9000/api/ (我在端口9000上运行它)。 的myproject /路线/ index.js 以下是我如何加载movie路线。 var router = require('express').Router(); router.use('/movie', require('./movie')); MyProject的/路线/电影/ index.js 最后,我已经定义了如下的终点。 var router = […]

喜欢通过API在Facebook发帖

我目前正在使用messenger bot来执行fbpost和分享行动。 我的问题是: Facebook是否允许应用程序喜欢和通过Graph API分享用户的post? 我发现了一些关于og.likes的Open Graph文档,但我不知道它是否被弃用。 (链接: https : //developers.facebook.com/docs/opengraph/guides/og.likes/ )。 我已经提出了一些示例请求,并创build了类似的开放graphics对象,但post不被喜欢。 我没有看到我的帐户有任何行动。 请求: fb.api('me/og.likes', 'post', {object: https://www.facebook.com/permalink.php?story_fbid=55431741576&id=38441731099'}, …); 创build的对象: { end_time: '2016-06-17T07:14:48+0000', start_time: '2016-06-17T07:14:48+0000', type: 'og.likes', application: { category: 'Utilities', link: 'https://apps.facebook.com/messenger-bot/', name: 'Test1', namespace: 'messenger-bot', id: '173992418' }, comments: { data: [], can_comment: true, comment_order: 'chronological', count: 0 }, from: { name: […]