Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #41 (permalink)  
Старый 19.03.2020, 17:16
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,704

Сообщение от miltorg Посмотреть сообщение
Ок. Вернёмся на землю.
На собеседовании мне задали вопрос:
Как получить на клиенте Рест запрос с удалённого сервера?
Я написал:
$json = file_get_contents('https://api.site.com/v1/profile');
$data = json_decode($json, true);
echo $data['name'];

Он сказал, что всё неверно и начал выдумывать что-то про безопасность.

php - хавает такие задачки на завтрак и по умолчанию.
В JS есть такое?
Есть. На ужин.

const response = await fetch('https://api.site.com/v1/profile')
const data = await response.json();
console.log(data);
Ответить с цитированием
  #42 (permalink)  
Старый 19.03.2020, 17:34
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,704

Сообщение от miltorg Посмотреть сообщение
2 задание. Узнать на клиенте положение выключателя (вкл/выкл) для неограниченного числа пользователей
php:

$mysqli = new mysqli("example.com", "user", "password", "database");

$rez = $mysqli->query("SELECT vk FROM test WHERE id = 1")
-> fetch_assoc();

print $rez['vk'];

А для JS?
Аналогично
const response = await fetch('example.com?id=1')
const data = await response.json();
console.log(data.vk);


И клиента не должно волновать как там сервер найдет этот выключатель. Будет там работать php, или Node, или просто cgi скрипт, написанный на С. Будет там база на мускуле, или на интербейсе, или просто в файле поищет...
Ответить с цитированием
  #43 (permalink)  
Старый 19.03.2020, 17:34
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от miltorg
-> fetch_assoc();
print $rez['vk'];
results[0].vk
Ответить с цитированием
  #44 (permalink)  
Старый 19.03.2020, 17:55
Кандидат Javascript-наук
Отправить личное сообщение для miltorg Посмотреть профиль Найти все сообщения от miltorg
 
Регистрация: 19.09.2019
Сообщений: 135

Сообщение от voraa Посмотреть сообщение
Аналогично
const response = await fetch('example.com?id=1')
const data = await response.json();
console.log(data.vk);


И клиента не должно волновать как там сервер найдет этот выключатель. Будет там работать php, или Node, или просто cgi скрипт, написанный на С. Будет там база на мускуле, или на интербейсе, или просто в файле поищет...
Нет. Не верно. Точнее тут нет решения.
Тут просто запрос к серверу и попытка получить ответ.
Ответить с цитированием
  #45 (permalink)  
Старый 19.03.2020, 18:21
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,704

Сообщение от miltorg Посмотреть сообщение
Нет. Не верно. Точнее тут нет решения.
Тут просто запрос к серверу и попытка получить ответ.
Так и на php мы обращаемся к базе данных и пытаемся получить ответ.
База данных это не часть php. Это отдельная задача, часто отдельный сервер... Который может быть, а может не быть. Может работать, а может и не работать в данный момент.
Ответить с цитированием
  #46 (permalink)  
Старый 19.03.2020, 18:24
Кандидат Javascript-наук
Отправить личное сообщение для miltorg Посмотреть профиль Найти все сообщения от miltorg
 
Регистрация: 19.09.2019
Сообщений: 135

Сообщение от voraa Посмотреть сообщение
Так и на php мы обращаемся к базе данных и пытаемся получить ответ.
База данных это не часть php. Это отдельная задача, часто отдельный сервер... Который может быть, а может не быть. Может работать, а может и не работать в данный момент.
Если всё работает - я получу ответ на задание. Он - не получит.
Вы правда это не понимаете?
Ответить с цитированием
  #47 (permalink)  
Старый 19.03.2020, 18:52
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,704

И я получу, если сервер работает и настроен на такие запросы
Php обращается к example.com, предполагая (зная), что там есть база данных, что эта база именно mysql, что в ней есть таблица и соответствующие поля.
А javascript обращается к example.com, предполагая (зная), что этот сервер может принять такой get запрос и в ответ пришлет нужный файл json.
Предположения javascript ничуть не хуже предположений php/
Ответить с цитированием
  #48 (permalink)  
Старый 19.03.2020, 19:28
Кандидат Javascript-наук
Отправить личное сообщение для miltorg Посмотреть профиль Найти все сообщения от miltorg
 
Регистрация: 19.09.2019
Сообщений: 135

Сообщение от voraa Посмотреть сообщение
И я получу, если сервер работает и настроен на такие запросы
Php обращается к example.com, предполагая (зная), что там есть база данных, что эта база именно mysql, что в ней есть таблица и соответствующие поля.
А javascript обращается к example.com, предполагая (зная), что этот сервер может принять такой get запрос и в ответ пришлет нужный файл json.
Предположения javascript ничуть не хуже предположений php/
Нет. Почему?
Потому что на JS - это предположение
А PHP готовое решение.

-----------------------

В принципе, мне стала немножко понятней поведение некоторых. Это поведение основано на том, что Сервер вам что-то должен.
Но Сервер никому ничего не должен. Сервер нужно программировать.
Ответить с цитированием
  #49 (permalink)  
Старый 19.03.2020, 19:34
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

упала тень на плетень )
Ответить с цитированием
  #50 (permalink)  
Старый 19.03.2020, 19:36
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,724

Сообщение от miltorg
Как получить на клиенте Рест запрос с удалённого сервера?
Запросы не получаются с удаленного сервера, а отправляются на него. С сервера Вы можете получить ответ на Ваш запрос.
"Rest-request" - это разновидность запроса такая?)

В этой статье, вроде бы, (прочитал первый экран статьи очень по диагонали) дается объяснение, что такое REST, почитайте:
https://habr.com/ru/post/38730/

Ответ мог быть примерно таким:
fetch('/api/user/1').then(res => res.json()).then(console.log);

Последний раз редактировалось Nexus, 19.03.2020 в 19:39.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите движок для создания мобильных приложений biryukovm Мобильный JavaScript 3 19.04.2018 12:01
Правильно вызвать массив biryukovm Элементы интерфейса 3 19.03.2018 13:31
Подскажите плагин для подсветки синтаксиса html css php js кода Кирюха =) Библиотеки/Тулкиты/Фреймворки 2 31.10.2015 06:12
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
нужна программа для этого. Чем писать? javascript или php? spam-server Серверные языки и технологии 3 27.08.2009 00:52