Tag: api

如何创build一个运行的API端点?

我想知道如何使RunKit运行终点。 在RunKit的这个页面中,它会生成一个与代码关联的URL。 在浏览器中打开该URL将看到代码定义的response 。 而且,对代码的更改将会实时反映出来。 有谁知道他们如何实现这一目标? 我知道在一个平均网站上定义一个固定的api。 例如,由于以下代码,可以调用https://myexample.com/api/add/3/5 。 但是我不知道如何制作一个function可以实时更改的API。 router.get('/api/add/:a/:b', function (req, res, next) { var r = Number(req.params.a) + Number(req.params.b); res.json(r) })

用Joivalidation嵌套对象

如何使用joivalidation这个对象? 我用Hapi api使用Joi。 { "email":"rambo@gmail.com", "password":"abc123", "active":"", "details": { "firstName": "Rambo", "lastName": "Comando", "phoneNumber": "5554446655", "billing":{ "firstName": "", "lastName": "", "phoneNumber": "", "address": "", "adress2": "", "postalCode": "", "city": "", "state": "", "country": "", "stripeId": "" } } } 我试过这样做,但它不工作。 什么是这样做的正确方法? payload: { email: Joi.string().email().required(), password: Joi.string().alphanum().min(8).max(30).required(), active: Joi.boolean(), details: Joi.object().keys({ firstName: Joi.string().max(50), lastName: Joi.string().max(50), […]

Node.js API速率限制与多个速率限制

我正在开发一个多次访问公共API的应用程序。 但是,API有多个速率限制,我的应用程序必须满足。 速率限制是每1秒20个请求,每2分钟请求100个请求。 我一直在寻找一些速率限制软件包,但他们都似乎只能设置一个单一的速率限制。 我可以将速率限制设置为每秒20个请求,但是我可以在5秒内发出100个请求并违反第二个限制。 我也可以设置每两分钟100个请求的速率限制,但这将立即违反第一个限制。 有一些包可以帮助我达到两个速率限制吗?

shopify价格规则API,如何获得只有活动折扣?

我正在使用节点js的Shopify应用程序,我需要从商家店获得折扣列表,所以我用价格规则pipe理API来获取列表,但问题是我得到的所有折扣甚至无效或过期的折扣,谁能帮我过滤这个,我search了很多Shopify文档,但我没有find任何解决scheme。

Rest API Node Js&Express,创build链接(href)给自己

目前我正在使用Node JS&Express中的REST API。 我必须为API中的每个资源创build一个链接,就像以上的例子。 { "id": "20281", "title": "test", "body": "test", "date": "2017-11-14 09:01:35", "_links": { "self": { "href": "https://docent.cmi.hro.nl/bootb/demo/notes/20281" }, "collection": { "href": "https://docent.cmi.hro.nl/bootb/demo/notes/" } } }, 我知道我可以在我的控制器中处理这个,因为req对象是可用的。 但是最好在我的模型中创build一个虚拟字段,以便dynamic地创build链接,而不是将其保存在数据库中。 什么是最好的方法来做到这一点? DB: MongoDB ODM: Mongoose

获取请求模块的错误

我正在查询到mtgox服务器。 这里是API https://en.bitcoin.it/wiki/MtGox/API/HTTP/v1 。 我的代码成功地击中了服务器,但几次后这个错误popup: events.js:115 listeners[i].apply(this, args); ^ TypeError: Cannot call method 'apply' of undefined at EncryptedStream.EventEmitter.emit (events.js:115:20) at SecurePair.destroy (tls.js:896:22) at process.startup.processNextTick.process._tickCallback (node.js:244:9) 我很确定这不是来自API调用限制。 //以下函数以美元返回一般的股票信息。 这包括高,低和音量… exports.market_data = function(req, res, next){ console.log("test"); options = { uri: 'http://mtgox.com/api/1/BTCUSD/ticker', headers: { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/555.55 (KHTML, like Gecko) Chrome/55.5.5555.55 Safari/555.55' […]

第三方API调用的node.js应用程序级速率限制

我正在构build的应用程序会对Facebook Graph API进行大量调用(但它可能是任何带有速率限制的API)。 为了论证的缘故,假设每10分钟有600个请求。 我正在使用https://github.com/jhurliman/node-rate-limiter来限制个人线程,但我需要做的是在macros应用程序级别限制所有Facebook API调用的速率限制,以便将应用程序作为整体不超过这个限制。 我真的不知道如何做到这一点。 我对节点相当陌生,没有任何解决scheme的概念,甚至看起来像。 知道Facebook的速率限制是每个应用程序还是每个经过validation的用户,这将是一件好事。 我假设的应用程序,因此这个问题。

AngularJS $ resource'GET'访问正确的API,但是'PUT'和'POST'不会

当使用方法:POST时 ,从AngularJS $资源的后续调用错误的API URL 我的控制器是这样设置的,使用Angular的$resource : $scope.updateProduct = $resource('/api/updateProduct/:product/:param/:value',{},{ query: {method:'GET'}, post: {method:'POST'}, save: {method:'PUT', params: {brand: '@brand', param:'@param', value:'@value'}}, remove: {method:'DELETE'} }); $scope.updateProduct.save({ product : $scope.post._id, param: 'likes', value: $scope.user._id }); 我的服务器在NodeJS和ExpressJS上运行。 在我的控制台中,当save操作被调用时,我可以看到: POST /api/updateBrand/<productid>/likes/fun,%20quirky%20loud,%20boho,%20hippy 200 22ms – 2.31kb 但是,我的API没有正确访问。 例如,如果我在浏览器中访问上面的URL,就会调用API函数,并更新我的数据库(并在我的服务器控制台中报告)。 然而,当Angular在这个URL上做了一个PUT ,什么也没有发生。 有趣的是,当我将$scope.updateProduct.save()更改$scope.updateProduct.save() $scope.updateProduct.get() ,正确调用了API并且一切正常。 任何想法发生了什么? 编辑:这是服务器设置: ExpressJS API设置: app.get('/api/updateProduct/:product/:param/:value', api.updateProduct); API code […]

股票市场API Node.JS

我对Node.JS有点新鲜,想了解如何利用另一个人的API提供的信息。 例如。 下面是我想要使用的API http://live-nse.herokuapp.com/?symbol=AMAR 可以在https://github.com/ashwanthkumar/Live-NSE-Stockfind源代码。 我真的很感兴趣,我可以如何使用这些信息,例如,如果你使用该链接来获取符号AMAR的统计数据,我相信它的响应与JSON? (请纠正我,如果我错了)。 这是一个示例回应。 {"lastUpdateTime":"03-NOV-2013 19:50:03","tradedDate":"03NOV2013","data":[{"extremeLossMargin":"-","cm_ffm":"15.47","bcStartDate":"19-DEC-12","change":"0.35","buyQuantity3":"200","sellPrice1":"-","buyQuantity4":"181","sellPrice2":"-","priceBand":"5","buyQuantity1":"530","deliveryQuantity":"-","buyQuantity2":"1","cm_adj_low":"6.00","sellPrice5":"-","quantityTraded":"-","buyQuantity5":"1,000","sellPrice3":"-","sellPrice4":"-","open":"7.55","cm_adj_high":"48.20","low52":"6.00","securityVar":"-","marketType":"N","pricebandupper":"8.25","totalTradedValue":"0.11","faceValue":"10.00","ndStartDate":"-","previousClose":"7.55","symbol":"AMAR","varMargin":"100.00","lastPrice":"7.90","pChange":"4.64","adhocMargin":"-","companyName":"Amar Remedies Limited","averagePrice":"7.78","secDate":"-","series":"BE","isinCode":"INE787G01011","indexVar":"-","pricebandlower":"7.55","totalBuyQuantity":"2,113","high52":"48.20","purpose":"ANNUAL GENERAL MEETING","cm_adj_low_dt":"28-JUN-13","closePrice":"7.90","recordDate":"-","cm_adj_high_dt":"08-JAN-13","totalSellQuantity":"-","dayHigh":"7.90","exDate":"17-DEC-12","sellQuantity5":"-","bcEndDate":"26-DEC-12","ndEndDate":"-","sellQuantity2":"-","sellQuantity1":"-","buyPrice1":"7.85","sellQuantity4":"-","buyPrice2":"7.40","sellQuantity3":"-","applicableMargin":"100.00","buyPrice4":"7.30","buyPrice3":"7.35","buyPrice5":"7.25","dayLow":"7.55","deliveryToTradedQuantity":"-","totalTradedVolume":"1,352"}]} 我想知道如何让我的Node.JS应用程序来接收这些信息。 我可以把它设置为一个VAR,所以我可以引用它,无论我以后想?

如何在node.js中从SRCDS接收日志

在控制台上有srcds(阀门专用服务器)添加logaddress_add 0.0.0.0:25001这个打开发送日志到远程服务器 试图通过这种方式来捕捉日志 var net = require('net'); var server = net.createServer(function(c) { c.on('end', function() { console.log('server disconnected'); }); c.pipe(c); }); server.listen(25001); 然后 var net = require('net'); var client = net.connect({port: 25001}); client.on('data', function(data) { console.log(data.toString()); client.end(); }); client.on('end', function() { console.log('client disconnected'); }); 然后 var s = dgram.createSocket('udp4'); s.bind(25001, function(data) { console.log(data) }); 没有结果可以帮助吗? thx提前