Tag: rest

使用Electron来使用RESTful API

在显示我的Electron应用程序的任何窗口(使用Electron应用程序作为客户端)之前,我想为RESTful API提出一些请求(GET,POST,PUT …)。 是否有可能使用ClientRequest来做到这一点? 会有人有一个例子吗? 非常感谢你。

如何仅使用Google云端硬盘的REST API检查访问令牌是否有效?

我在PHP中实现了这个问题的答案,在这个问题上已经转换了代码。 $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, "https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=$access_token" ) ; curl_setopt( $ch, CURLOPT_PORT , 443 ) ; curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false ) ; curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ) ; curl_setopt( $ch, CURLOPT_HEADER, false ) ; curl_setopt( $ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded") ) ; $response = curl_exec( $ch ) ; error_log($response); 当我运行代码时,我收到: HTTP/1.1 400 Bad Request Vary: […]

根据更新的字段调用函数

我想调用不同的function取决于更新的模型领域。 我的代码如下所示: update(req, res){ return LED .findById(req.params.LEDId) .then(LED => { if (!LED) { return res.status(400).send({ message: 'LED Not Found', }); } return LED .update(req.body, {fields: Object.keys(req.body)}) .then(() => res.status(200).send(LED)) .catch((error) => res.status(400).send(error)); }) .catch((error) => res.status(400).send(error)); }, 所以我的计划是集成一些if-clause来获取更改的值,并根据更改调用一些函数。 如果从句: if(req.body.status || LED.status){ BLE.changeStatus(req.body.device_ID,req.body.status); }else if(req.body.prog || LED.prog){ BLE.changeProg(req.body.device_ID,req.body.prog); }else if(req.body.white || LED.white){ BLE.changeWhite(req.body.device_ID,req.body.white); }else if(req.body.color […]

执行许多并发的http请求会导致exception

在对这些例外进行研究之后,我已经尝试了很多,但是迄今为止,没有一个build议的解决scheme对我有所帮助,因此是另一个解决scheme。 也许我错过了一些东西。 我正在使用“请求”模块,我已经有800个请求/秒可用于我想要使用的REST Api。 因此我写了一个包装类,它包含所有可能的API端点的速率限制+方法。 每当我尝试执行超过~100个请求/秒(无论是单个实例还是集群),我都会收到类似这样的exception: 错误:getaddrinfo ENOTFOUND api.domain.com api.domain.com:80 错误:ESOCKETTIMEDOUT 错误:ETIMEDOUT 这些是我用于我的请求的默认选项: apiRequest = request.defaults({ headers: { Authorization: `Bearer ${this.apiJwt}`, }, json: true, timeout: 6000, baseUrl: this.baseUrl, pool: { maxSockets: Infinity }, }) // First parameter is priority, second the function to be called, // third parameter is the first parameter for the called […]

如何在nodejs中的端点调用中传递一个variables

我有一个variables,例如var merchanttoken = requestConfig.merchant_connect_token ,如何通过它时,呼叫端点例如 request.get('http://pi.call/v2/{merchanttoken}/info, function) 我需要在URL中传递variables。

RestAPI – 如何以正确的方式提供数据

我正在尝试创buildRestAPI。 DB中有很多文件,我们称之为商品。 每个好的都有一些财产。 客户将获得这些,并显示给用户。 就像:… api / goods? 过滤值在这里 。 它看起来很容易,但是发送所有满足过滤条件的商品是错误的。 我需要分开这些,并发送只需要的部分数据。 第一个想法是创build一个单独的路线,这将获得页面上的filter和数量文件,并返回页数。 因此,前端可以build立分页,然后,在每个分页标签上使用处理程序,向服务器发出请求,并获得所需的数据。 我创build了一些基本的例子(代码不好,但主要的想法是): https : //github.com/Gordienko-RU/Tiny-pagination 但是我认为还有另一个更好的实施。 在“最佳做法”中,有一些关于在标题中发送分页的说明,但我无法弄清楚。 所以,我想知道,按部件发送数据的最好方法是什么,而且还要给客户端build立分页面板(页面数量)所需的信息。

如何使用两个中间件与注册方法node-restful?

是否有可能使用两个中间件与'注册'方法(节点宁静)? Router.js: personService.register(protectedApi, '/person'); PersonService.js: Person.methods(['get', 'post', 'put', 'delete']); Person.updateOptions({new: true, runValidators: true}); Person.after('post', sendErrorsOrNext).after('put', sendErrorsOrNext); 我需要得到一个中间件1的信息并传递给o中间件2,但是我想使用node-restful的注册方法。 可能吗?

Keycloak:authZ和nodeJS

我正在尝试使用keycloak授权机制来保护REST API。 我的API在NodeJS中用express。 说我有这个API: http://www.example.com/api/v1/houses 端点支持GET / POST / PUT / DELETE。 一个房子有一个名字和一个主人: { name: 'myhouse', owner: 'smith' } 每个人都可以看房子。 你也可以创build房屋,并自动成为所有者。 只有业主可以删除一个房子。 这和photoz例子很相似。 使用Keycloak连接仅在bearer-only模式下使用nodeJS express: router.get('/houses*', keycloakProtect(), myHandler) 但是这只提供了authentication,而不是授权。 基本上它只是检查你提供了正确的标记。 KeycloakProtect仅提供基于angular色名称的基本授权机制。 但是,我想充分利用客户端授权(包括资源,范围和策略)…是否有任何NodeJS支持? 如果不是,如何使用Keycloak API呢?

授权问题与节点js请求

我有一个困难的时间进行validation的请求,盟友/报价报价stream。 我正在使用节点JS来提出请求。 我已经尝试了几种方法来提出请求,但为了这个问题的目的,我将使用oauth模块来坚持从他们网站的例子。 我想要做的是console.log(数据),我期望一个股票报价stream 。 相反,我返回401未经授权的。 任何人都可以指出我的方向,以更好地解决这个问题,或提供更正? 这是我的代码和服务器响应: ///码/// var OAuth = require('oauth').OAuth; var credentials = { consumer_key: "xxxxxxxxxxx", consumer_secret: "xxxxxxxxxxx", access_token: "xxxxxxxxxxx", access_secret: "xxxxxxxxxxx" }; var oa = new OAuth(null, null, credentials.consumer_key, credentials.consumer_secret, "1.0", null, "HMAC-SHA1"); var request = oa.get("https://stream.tradeking.com/v1/market/quotes?symbols=AAPL", credentials.access_token, credentials.access_secret); request.on('response', function (response) { response.setEncoding('utf8'); console.log(response.statusCode) console.log(response) }); request.end(); ///响应/// 401 IncomingMessage […]

使NodeJSfunction同步? 在查询数据库之前发送json响应

我正在使用nodejs作为后端语言进行login/注册android应用程序UI。 发生什么事情是,每当我点击注册button,它发送json响应之前查询数据库(select语句来检查是否存在用户名)导致android应用程序得到错误的响应,导致我点击button两次注册正确响应。 例如,让我们说他们是一个名为testing在数据库中的用户名,我尝试使用用户名testing注册,它会告诉我,用户名已被采取,如果擦除testing,并input让说'BOB'不存在数据库它仍然说,用户名已被采取,即使它不是,但当我再次单击注册button它将注册用户。 我假设这是因为它是asynchronous(它发送json响应,而查询数据库之前或之前)。 我怎样才能使这个同步,或有另一种方法来解决这个问题? 服务器文件: var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var mysql = require('mysql'); //connection var con = mysql.createConnection({ host: "localhost", user: "root", password: "password", database : "androidtest" }); //use json app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); //declare variables to hold values entered by the user var name; […]