【问题标题】:Creating an API to wrap an... API?创建一个 API 来包装一个... API?
【发布时间】:2019-03-15 21:22:09
【问题描述】:

这不是一个具体的问题,但我试图围绕 REST API 的概念并在您自己的 API 中调用 API。

例如,如果我开发了一个名为“BeesBees”的应用程序,用户可以在其中购买蜜蜂,并且我有一个登录名和密码数据库,显然还有蜜蜂,每个成本是多少,我知道我可以使用自己的应用程序 BeesBees API 来获取蜜蜂列表(如果我将其开放给其他人,他们也可以使用我的 GET /bees 点来获取蜜蜂)

但是如果我想让客户购买蜜蜂,并且我不想为此构建一个完整的平台,所以我集成了 Stripe - 我可以有一个 POST /:users/charges/:priceOfBee API 调用吗反过来,又以某种方式在某个地方调用了 Stripe API 函数?例如,指向将使用 Stripe 的 Node.js SDK 进行收费的 Node.js 项目的 URL。

或者,在这种情况下,为我的设备平台实现 Stripe SDK 并使用设备进行充电会更好吗?

我没有代码库,所以没有什么可以挑选的,但我想不出还有什么要问的,对不起大家

【问题讨论】:

    标签: node.js rest api abstract


    【解决方案1】:

    您当然可以将 API 与其他 API 一起包装,这实际上只是一种组合形式,在有意义的情况下委托给其他服务。

    条带集成很可能是遵循这种模式的一个很好的例子。您当然不想推出自己的支付服务。

    这是一个本地 Express 服务器发出 API 请求的简单示例:

    const express = require("express");
    const port = 3000;
    const app = express();
    const request = require('request');
    
    app.get("/api/example", (req, res) => {
        // Make external REST request here...
        let options = {
            url: 'https://httpbin.org/get',
            qs: { parameter1: 42 },
            json: true
        }
        request(options, (err, response, body) => {
            if (err) {
                res.status(500).send(err.message);
            } else {
                res.status(200).send(body);
            }
        });
    });
    
    var server = app.listen(3000, function () {
        var host = server.address().address;
        var port = server.address().port;
        console.log('running at http://' + host + ':' + port)
    });
    
    console.log(`Serving at http://localhost:${port}`);
    

    【讨论】:

      猜你喜欢
      • 2020-09-12
      • 2018-03-05
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-25
      • 1970-01-01
      相关资源
      最近更新 更多