Вызов API на стороне сервера или на стороне Клинта? - PullRequest
0 голосов
/ 10 октября 2018

Если вы работаете с React.js, как лучше всего выполнить вызов API?Например, если я пытаюсь получить данные о книгах из API книг Google, я должен сделать это на стороне клиента с помощью React.js или на стороне сервера.Почему было бы лучше сделать это с одной стороны против другой?Спасибо.

1 Ответ

0 голосов
/ 10 октября 2018

Вы можете сделать что-то вроде этого.

const express = require('express');
const app = express();
const path = require('path');
const fs = require('fs');
const proxy = require('http-proxy-middleware');

app.use(
  '/api',
  proxy({
    target: 'http://api.books.com',
    changeOrigin: true,
    ws: true,
    pathRewrite: { '^/api': '' },
  })
);

const index = fs.readFileSync(path.resolve('./build', 'index.html'), { encoding: 'utf-8' });

app.get('*', (req, res) => {
  res.contentType('text/html').send(index);
});

const server = app.listen(3000, function() {
  const host = server.address().address;
  const port = server.address().port;

  console.log('The server is running at http://%s:%s/', host, port);
});

И позвонить вот так (бросить прокси), чтобы не было проблем с CORS или заменить сервер после.

fetch('/api/get-books')
...