2

Поисковый клиент Википедии

Поисковый клиент Википедии

Всем привет!


В рамках изучения фреймворка Vue.js реализовал небольшой сервис поиска по Википедии.

Приложение представляет собой веб-клиент с визуальным веб-интерфейсом, позволяющий производить поиск по списку статей в Википедии в пространстве имён Википедии "Статьи" и поиск по имени файлов изображений. Реализована маршрутизация между вкладками с сохранением в URL параметров запроса и возможностью подгрузки данных после нативной браузерной перезагрузки страницы (воспроизведение состояния после перезагрузки).


В приложении реализована серверная часть на node.js, позволяющая запустить публичный http-сервер, принимающий запросы от веб-клиента, передающий их программному интерфейсу приложения (ПИП, API), который, в свою очередь, обращается к ПИП Википедии, обрабатывает полученные от Википедии данные, после чего http-сервер возвращает обработанный ответ веб-клиенту.


Однако есть ограничения. Несмотря на то, что ПИП Википедии довольно хорошо описан, не всегда есть возможность сформировать оптимальный запрос, что связано с особенностью архитектуры ПИП Википедии. Например, насколько известно, нет возможности (или я не нашёл способ) получить одновременно название статьи, краткое описание и ссылку на страницу, в связи с чем в текущей реализации для комбинации перечисленных данных на уровне промежуточного ПИП используются 3 вида запросов, что, конечно же, неоптимально.

В связи с этим количество сущностей запросов ограничено 10-ю, то есть, при поиске или показе случайных статей будет выведено не более 10 сущностей.

В реальности для получения основных данных по 10 статьям (название, описание, ссылка) будет сделан 21 запрос к ПИП Википедии:


- запрос случайных статей

- запрос на каждую статью отдельно на основе id

- запрос выдержки (extracts) из каждой статьи


Демо можно посмотреть тут: wikisearch.finecode.ru

В демо-версии есть ограничения на количество запросов с одного ip - не более 20-и запросов в час.


Проект может быть использован как учебный для изучения технологий Vue.js, Redux, Node.js.

Развитие, доработка, оптимизация и улучшения приветствуются.


Репозиторий

Рабочий экземпляр

Вы смотрите срез комментариев. Показать все
0
Автор поста оценил этот комментарий
А зачем здесь вообще бэкенд? Разве нельзя дёргать API из браузера?
Первый раз вижу аббревиатуру ПИП для API. Странновато звучит)
раскрыть ветку (24)
Автор поста оценил этот комментарий

Запросы из браузера обрезаются политикой CORS, а ПИП использовал сознательно, поскольку считаю важным развивать русскоязычную терминологию. Хотя согласен, может,  не совсем удачный вариант)

раскрыть ветку (23)
0
Автор поста оценил этот комментарий
Я так понимаю, политики CORS настраиваются на сервере, который отдает статику, то есть вы ими сами можете управлять, если сервер позволяет. Или Википедия мониторит referrer?
раскрыть ветку (5)
0
Автор поста оценил этот комментарий

Вы не можете послать запрос к ПИП Википедии из браузера со страницы домена, отличного от домена Википедии, поскольку доступа к заголовками Википедии у вас нет. Технически, конечно, это можно сделать, отключив в браузере CORS, однако это частный вариант, который обременит пользователей.

раскрыть ветку (4)
1
Автор поста оценил этот комментарий
раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Вы отсылали запрос с какого домена?

Могли бы скинуть код запроса? попробую воспроизвести

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Вот мой пример: https://wikisearch.website.yandexcloud.net/ Можно посмотреть исходный код страницы.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Да, действительно работает по протоколу https, по http у меня выдаёт ошибку CORS. Вероятно, я упустил этот момент в самом начале. Однако мне удалось поближе познакомиться с Nodejs, к тому же всё равно нужно было бы на клиенте писать запросы к Википедии. Хотя в целом вы правы, решение избыточное,сервер можно было не использовать.

Автор поста оценил этот комментарий
Были одни, решили русскоязычный язык программирования придумать. Больно смотреть даже.
раскрыть ветку (16)
Автор поста оценил этот комментарий

Вы можете объяснить, с чем конкретно связана ваша боль?

раскрыть ветку (15)
1
Автор поста оценил этот комментарий
Иногда не стоит изменять то, что уже давно устоялось, дабы не вносить путаницу. И вообще, английский язык де-факто является языком всех программистов (наконец-то, хоть где-то появился универсальный язык общения), а переводы терминологии различными авторами вносят лишь неразбериху.
раскрыть ветку (13)
Автор поста оценил этот комментарий

Язык это основа, я считаю, что обязательно нужно адаптировать терминологию. На родном языке мыслить намного легче, и опять же, творить и создавать новое легче на своём языке, даже если идеально владеть иностранным. Нужно вырабатывать терминологию, формировать первичные ассоциативные связи слов со значением на русском, это позволит хоть как-то продвинуться в глобальном развитии технологий, сохранив уникальность разработок.

раскрыть ветку (11)
0
Автор поста оценил этот комментарий
Да и к слову, где адаптация фреймворк, url, http, сервер, ip, веб клиент. Уж будьте до конца принципиальны, а то только api перевели.
раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Спасибо за рекомендацию, но я предпочту сам решить, где границы моей принципиальности.

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

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Разнообразие оно хорошо, пока не порождает путаницу.
Автор поста оценил этот комментарий
Адаптировать терминологию не нужно и вредно. Плюс без какой либо стандартизации будет абсолютная путаница. Большинство иностранной терминологии и абривиатур стандартизировано, например стандарты RFC, что исключает неверное трактование. Переводя терминологию и употребляя ее вы вводите в заблуждение людей, ваш текст становится тяжело читать и понимать. Да и если у вас с английским плохо, то это сугубо ваши проблемы.
раскрыть ветку (7)
Автор поста оценил этот комментарий

А не расскажете мне, например, что такое RESTful API, давно ли эта технология стандартизирована, и где можно ознакомиться со спецификацией, пусть даже на английском, I will do it in despite of difficulty?

раскрыть ветку (6)
Автор поста оценил этот комментарий
http://standarts.rest. you banned in google?
раскрыть ветку (5)
0
Автор поста оценил этот комментарий

I cannot to connect this site

раскрыть ветку (4)
0
Автор поста оценил этот комментарий
Ошибся в написании standards.rest вы принципиально решили минусы ставить?
раскрыть ветку (3)
Автор поста оценил этот комментарий
Согласен, к примеру, до сих пор не могу пользоваться некоторыми русифицированным прогами, только английскими версиями, только потому, что раньше официальной локализации не было, а локализаторы такой лютый пипец творили с переводом, что даже иногда перевод сильно отличался от истины.
0
Автор поста оценил этот комментарий
Это он на счёт «ПИП»
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества