Запрос данных из приложения React - PullRequest
0 голосов
/ 29 августа 2018

Предположим, у меня есть сервер node.js, работающий на localhost:2000, который направляет запросы GET и вызывает внешний API для заполнения ответов.

Теперь у меня также есть интерфейс activ.js, работающий на localhost:3000, который запрашивает сервер узла на localhost:2000, чтобы получить ответы, используя axios.

Какой смысл делать это? Если я уже использую axios в своем приложении реакции, почему я не могу просто напрямую вызвать из него внешний API? Это просто дизайнерское решение? Что такое разделение сервера и клиента и более чистый код, или он служит более высокой цели?

PS. Для ясности - этот метод ничем не отличается от использования прокси для приложения реакции. Правильный? то есть настраивать прокси в package.json, а приложение реакции просто fetch конечных точек?

1 Ответ

0 голосов
/ 29 августа 2018

React - это внешняя часть вашего приложения, а сервер node.js - это внутренний. Все в интерфейсной части вашего приложения будет доступно клиенту, но сторона сервера будет скрыта для него, что бы вы ни делали на сервере, оно будет защищено (в зависимости от мер безопасности, которые вы принимаете).

Если вы просто хотите получить доступ к стороннему API и у вас нет причин безопасности, если вы этого не делаете (например, просто позвоните в стороннюю службу, предоставляющую официальное время вашей страны), вы можете сделать это напрямую. из вашего приложения React. Вы также можете перенаправить его, используя свой сервер в узле (сначала вызывая свой сервер, а затем вызывая API с вашего сервера). Второй вариант здесь кажется длинным путем к чему-то простому, но в некоторых случаях это может быть полезно, например, если вы вызываете свой API с некоторыми учетными данными безопасности и хотите настроить их на своем сервере, опять же для безопасности или если вы не хотите раскрывать логику вызова этого внешнего API. Обычно получение информации из базы данных выполняется на стороне сервера, а не на стороне внешнего интерфейса, потому что вы не хотите раскрывать сервер своей базы данных, учетные данные и т. Д.

Это может быть дизайнерское решение, при котором вы получаете логику вызова внешнего API на стороне сервера по соображениям безопасности. Если вы управляете этой информацией в React (имеется в виду внешний интерфейс), вы предоставите большую часть этой информации клиенту (в какой-то момент все содержимое внешнего интерфейса будет загружено в браузер).

Сохраняйте простые звонки в приложении React и важные звонки по безопасности на стороне сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...