API - запрос - ответ
Здравствуйте!
Есть вот такой сайт https://travelshift.com Скрипт отправляет запрос вот сюда https://travelshift.com/wp-content/t...i/?action=base (если ввести запрос в окно браузера, будет видно что отдаёт запрос) Соответственно приходит ответ, всё замечательно. Вопрос в том что лежит в это папке (/api)? https://travelshift.com/wp-content/t...avelshift/api/ Конечная цель сделать свой файл в папке /api но уже на своём сайте, что бы он отдавал аналогичные данные. Либо подставить эти (уже запрошенные данные) в некий массив в скрипте который должен получить этот ответ Пожалуйста помогите... у самого ума не хватает :( |
Цитата:
|
Скрипт отправляет запрос именно по этому пути https://travelshift.com/wp-content/t...i/?action=base
Так как это wordpress, можно утверждать что ./api - это папка в которой лежит некий файл, который и отдаёт данные Что именно отдаёт можно посмотреть вот здесь - https://travelshift.com/wp-content/t...i/?action=base |
Цитата:
|
Если в ./api лежат некие php файлы которые запрашивают БД и отдают json, то в таком случае взять уже готовый ответ и скопировать его в другой файл в ./api что бы он отдавал идентичные данные, но уже без запроса в БД
|
То что вы принимаете за папку, это не в контексте wordpress будет сказано, не обязательно должно быть папкой, это может быть таким же параметром запроса как и action=base. Просто сервер перенаправляет все запросы на роутер (а это уже не обязательно один файл в какой-то папке), который и определяет "что делать" серверу.
Цитата:
{"config":{"global":{"news":"News","partners_websi te":"Get in touch",..... это данные, а не JS скрипт, формат json, который на клиенте будет преобразован в js объект. |
Цитата:
Мне как раз надо каким то образом подпихнуть этому скрипту уже свой свой файл (или данные) идентичные тем которые приходят из ./api |
Вот этот скрипт
https://travelshift.com/wp-content/t...eeb227e4057.js Выполняется из браузера. Функция выполняющая запрос по поиску ?action=base |
Цитата:
Если у вас сайт использует также эту CMS и то, чего вам хочется, это работа его модуля из коробки, то все файлы-скрипты у вас есть, что каждый из них конкретно делает можете и разбираться, если в этом есть смысл. Если это работа модуля написанного по индивидуальному заказу, то что файлы для него в CMS добавлены вам может сказать только его автор. Если у вас свой движок, то вам нужно не то, что имеется в Wordpress, ибо оно не будет работать даже если вы все получите и себе загрузите, а писать свои обслуживающие некие запросы клиента. Нужна такая же структура данных в базе, и т.д., и т.п. |
Цитата:
|
Про wordpress всё понятно. тут дело в другом. этот сайт (travelshift) формируется динамически уже в браузере с помощью js.
т.е. вот эти данные, если вы посмотрите их внимательно служат как раз для формирования динамической страницы на стороне клиента с помощью js.(подозреваю что используется vue) Мне нужно подпихнуть эти данные (они же отдаются в браузер, если ввести строку) в скрипт js который эти данные запрашивает. что то типа локального подключения json файла. т.е. прямого указания - прочитать все данные из json файла, а возьму я эти данные не из базы wordpress, а введя ссылку в адресной строке и скопировав их в json |
Цитата:
|
Вам что нужно именно эти данные? Ну так заберите их и поместите у себя на сайте как файл, затем запрашивайте их (для его получения и скриптов то не надо будет, хватит и Apach), декодируйте и делайте с ними чего хотите.
|
Да именно, эти данные. которые нужно подпихнуть этому скрипту.
Так вот и проблема в том что не знаю как и где это сделать... ума не хватает :( Смог найти и понять что вот этот скрипт https://travelshift.com/wp-content/t...eeb227e4057.js получает все необходимые данные Понимаю что в нём нужно заменить запросы к api , на запросы к готовым файлам. ?action=base - только в одном месте в этом файле. Но как это сделать - не знаю. Там слишком сложная для меня структура :( |
Я не понимаю чего надо. Что из этих данных должно получится на клиенте мне не ведомо. Кому что "подпихнуть" я не в курсе, могу только сказать, что это должен быть клиентский сценарий, который точно знает структуру данных, ожидает именно их.
А сами данные, коли они нужны, после запроса по ссылке сохраните как имя_файла.json у себя на сервере, если этого будет достаточно. |
Цитата:
fetchCombinedBase: (E = Object(o.a)(regeneratorRuntime.mark((function t(e) { var r, n, o, c, l, d, h; return regeneratorRuntime.wrap((function (t) { for (;;) switch (t.prev = t.next) { case 0: return r = e.commit, n = e.rootState, o = "".concat(T, "?action=base"), t.next = 4, f.a.get(o, { responseType: "json" }); case 4: c = t.sent, l = c.data, d = [], h = n.ui.bp.mobilePortrait ? 512 : 1024, Object.keys(l).forEach((function (t) { var e = l[t]; "config" == t ? r("i18n/setContent", { en: e }, { root: !0 }) : "pages" == t || "extrapages" == t ? d = d.concat(e) : "blogposts" == t ? r("setBlogPosts", { posts: e }) : "trips" == t ? r("setTrips", { trips: e, imageQuality: h }) : "partners" == t ? r("setPartners", { partners: e }) : "social_feed" == t && r("setSocialFeed", { feed: e }) })), r("setPages", { pages: d }); Вот этот кусок кода, который по моему мнению получает данные. Если это так, то здесь нужно заменить на получение из файла. Как это сделать я не знаю. |
Здесь ?action=base, это GET параметры запроса с ключом action и значением base. Запрос будет производится по указанному пути, если судить по примеру, то .../api/ и если нет перенаправления, то в каталоге должен быть индексный файл, который и будет обрабатывать этот запрос - ключ и его значение. В CMS же все сложнее. В данном скрипте адрес запроса формируется тут - o = "".concat(T, "?action=base"). Вы можете вместо этого переменной "o" указать любой свой путь (относительный или полный) просто к файлу хранящему эти данные.
|
Цитата:
o = "".concat(T, "/mydata.json")так? |
Метод concat() объединяет текст из двух или более строк и возвращает строку из этих строк. То есть, если переменная T содержит путь к реальному каталогу на вашем сайте, то да, нужно только в этом каталоге сохранить эти данные под указанным именем.
|
буду пробовать
|
Часовой пояс GMT +3, время: 22:19. |