Tag: api

如何防止在Express中使用REST API调用中冲突的关键字

如果我正在为应用程序创build一个REST API,那么就我所知,path定义的顺序很重要。 例如,如果我按照以下顺序编写我的路线: app.get('/users/:username', user.get); app.get('/users/list', user.listAll); 那么user.listAll永远不会被访问到,并且当向/ users / list发出请求时,服务器会将“list”分配给username参数。 所以很明显你想要颠倒这些路线的声明顺序。 但是在这里,如果用户使用用户名'list'创build一个帐户,我们会遇到同样的问题,对吧? 那么如何防止用户使用“关键字”创build名称,这里的关键字定义为与api路由冲突的string。 我可以想到两种方法,但都不令人满意。 首先,你可以保留一个黑名单string,你比较每个用户名创build。 但保持这将是一场噩梦。 而且,只需在数据库中预先创build这些用户(只要用户名是唯一的)即可。 这种做法看起来有点不好意思,但我想不出有多less反对意见。 有没有简单的解决这个问题?

YouTube使用Google APIsearchNode.js

我正在尝试使用Node中的Google API进行YouTubesearch。 我正在使用这个作为一个教程: https://github.com/google/google-api-nodejs-client/#google-apis-nodejs-client 我有一些基本的工作 : var google = require('googleapis'); var YOUTUBE_API_KEY = "–YOUR_API_KEY"; var youtube = google.youtube('v3'); var requests = youtube.search.list({part:'snippet', q: 'cats', maxResults: 10}); 当我打电话给我时,我得到这个消息: Error: Daily limit for Unauthenticated Used Exceeded. 现在,这显然是因为我没有使用我的API密钥。 但是,我找不到任何资源,显示如何使用API​​密钥的节点。 我发现的任何东西都告诉我要做这样的事情: var YOUTUBE_CLIENT_KEY = ''; var CLIENT_SECRET = ''; var REDIRECT_URL = '/'; var OAuth2 = google.auth.OAuth2; var oauth2Client […]

为什么当我运行POST请求时,它不会返回我在Mongoose模式定义中定义的JSON?

我有问题在邮递员上运行POST请求。 当我运行一个POST请求时,它只返回在我的模型中定义的模式的一部分。 我想在我的Mongoose模式定义中定义完整的JSON。 这里是代码: 模型: 'use strict'; //******************* //Dependencies //******************* var mongoose = require('mongoose'); var Schema = mongoose.Schema; //attach Schema method on the mongoose object //Create a new Schema var rankingsSchema = new mongoose.Schema ({ overall: Number, state: String, workforce: Number, costOfDoingBusiness: Number, infrastructure: Number, economy: Number, qualityOfLife: Number, technologyAndInnovation: Number, education: Number, business: Number, […]

在Google文档的Google驱动器API中的files.list()和files.get()中缺lessexportLinks

当获得一个File资源 ,该文件是一个Google文档,该文件应该有一个exportLinks对象。 当我从我的NodeJs客户端做到这一点,我得到一个与许多领域的文件,但exportLinks丢失。 当我使用Try It! 在其文档中, exportLinks确实存在,对于同一个文件。 唯一明显的区别是,我的请求使用Authorization标题,而“尝试”部分似乎使用key查询参数。 exportLinks掉线? 更多细节: 我正在使用google-auth和googleapis来发出我的请求,而我所调用的其他API似乎正常工作。 还认为这是一个范围权限的事情,并尝试使用谷歌驱动器的最广泛的范围 – https://github.com/google/google-api-nodejs-client – 但这没有什么区别。

创build一个SimpleHTTPServer来使用Python代码作为API

有没有办法使我的python脚本服务于一个简单的HTTP服务器,并调用脚本函数从外部(在另一个程序)在API的哲学? 编辑 好吧,感谢@ upman的回答,我知道我可以使用SimpleXMLRPCServer ,但问题仍然是:如何在其他使用Python以外的语言编写的程序中监听XML-RPC服务器(例如Node.js)

如何使斜杠命令在Slack中的我的机器人上工作?

如何使斜杠命令在Slack中的我的机器人上工作? 我正在使用chat.postMessage有机器人发布。 例如,如果我键入/giphy something ,它会拉入一个GIF图像,但如果我的机器人发布完全相同的东西,它什么都不做。

如何提取nodejs上的数组

我做的显示用户信息的API,所以我写这样的代码 res.json({"Status" : true , "User" : rows }); 然后我得到结果 { "Status": true, "User": [ { "userid": 821786, "fullname": "undefined", } ] } 但是我想要这样的结果 { "Status": true, "userid": 821786, "fullname": "undefined" } 我怎样才能做到这一点 ? 我试过了 res.json({"Status" : true ,"Type":"Google", rows }); 但它给了我 { "Status": true, "rows": [ { "userid": 821786, "fullname": "undefined", } ] } […]

如何build立一个松散的机器人有多个对话?

我正在使用第三方服务构build一个懒散的机器人来处理基于input的响应,而不仅仅是将其编码到机器人中。 这个服务的API需要一个客户端ID和一个对话ID来获得响应。 我发现每次有一个闲置的机器人接收到一条消息时,它每次都会创build一个新的消息对象,所以没有办法将消息对象中的clientID和对话ID保留下来,并且保留下来。 rtm.on(RTM_EVENTS.MESSAGE, function(message // <– new object each time the bot hears a message){ rtm.sendMessage('hello', message.channel); }); 所以缩短了,有没有人知道一种方法来保持一个单一的用户和机器人之间的对话,而坚持一些types的variables来保存客户端和对话ID?

从节点(服务器到服务器)Node / Express使用请求中获取来自Restful API的数据

我试图连接到位于这里的TradeGecko API :(他们所有的例子都是在ruby – 我使用节点) http://developer.tradegecko.com/ 我有一个特权访问令牌,我创build了FAKE TOKEN:146e29b59e7e8861f462101f610f58168ca5edf2f307e5f7adc3314d24ee8015 如何获得所有产品的GET请求,例如: http : //developer.tradegecko.com/?ruby#list- all-products 非常感谢帮助! 假设我有这样的代码: var express = require('express'); var request = require('request'); var app = express(); var port = process.env.PORT || 3000; var testRouter = express.Router(); myRouter.route('/testRoute') .get(function(req, res){ request('API CALL HERE??', function (error, response, body){ if(!error && response.statusCode == 200){ res.json(body); } }) […]

使用节点js中的请求数据

我在玩API。 我想要打印姓氏到一个HTML文档。 所以我能够控制login响应给我的列表对象,并循环查找姓氏。 但是,这是我卡住的地方,我如何打印到文档? 我可以在app.get中写一个函数,还是可以从HTML文档访问数据? 有点失落,任何帮助将是真棒。 谢谢。 var express = require('express'); var app = express(); var nationbuilder = require('nationbuilder'); var OAuth2 = nationbuilder.auth.OAuth2; var async = require('async'); var oauth2Client = new OAuth2(); var sites = nationbuilder.sites('v1'); var people = nationbuilder.people('v1'); //look for resources. app.use(express.static(__dirname + '/public')) ; //nationbuilder config. oauth2Client.setCredentials({ access_token: 'XXXXXXX' }); nationbuilder.options({ params: […]