Создание API для переноса ... API? - PullRequest
0 голосов
/ 15 марта 2019

Это не конкретный вопрос, но я пытаюсь обдумать концепцию REST API и вызывать API в своем собственном API.

Например, если я разрабатываю приложение под названием «BeesBees», где пользователи могут покупать пчел, и у меня есть база данных с логинами и паролями и, очевидно, пчелами, и сколько стоит каждая, я понимаю, что могуиспользовал свой собственный API-интерфейс BeesBees для получения списка пчел (и если я сделаю его открытым для других людей, они также могут использовать мою точку GET / пчел, чтобы получить, ну, пчелы)

Но если я хочучтобы позволить покупателям покупать пчел, и я не хочу создавать целую платформу для этого, поэтому я интегрирую Stripe - могу ли я иметь вызов API POST /: users / charge /: priceOfBee, который, в свою очередь, называетсяФункция Stripe API где-то как-то?Например, указав URL-адрес проекта Node.js, который будет взимать плату, с помощью Stripe's Node.js SDK.

Или, в таком случае, было бы лучше просто реализовать Stripe SDK дляПлатформа моего устройства и сделать заряд с помощью устройства?

У меня нет кодовой базы, так что нечего выбирать, но я не мог придумать, где еще можно спросить, извините, все

1 Ответ

1 голос
/ 15 марта 2019

Вы, безусловно, можете обернуть 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}`);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...