интерактивный запрос что это
Создание интерактивных запросов командной строки
Inquirer.js – это набор общих интерактивных пользовательских интерфейсов командной строки. Он поддерживает ввод ответов на вопросы и выбор варианта из списка.
Пакет inquirer предоставляет несколько стандартных приглашений командной строки и обладает гибкой конфигурацией. Кроме того, его функционал легко расширяется с помощью дополнительного интерфейса. Пакет даже поддерживает промисы и синтаксис async/await.
Читайте также:
В этой статье вы научитесь устанавливать Inquirer.js, а также познакомитесь с некоторыми его основными функциями.
Требования
Чтобы выполнить данный мануал, вам понадобится локальная установка Node.js (ее можно получить, следуя этим инструкциям для mac OS, Ubuntu, Debian, CentOS).
Это руководство было протестировано на версиях Node v15.14.0, npm v7.10.0 и inquirer v8.0.0.
1: Создание тестового проекта
Сначала откройте окно терминала и создайте новый каталог для нашего проекта:
Чтобы добавить приглашения в сценарии Node.js, необходимо установить пакет inquirer:
npm install inquirer
Итак, на данный момент у вас есть новый проект, готовый к использованию Inquirer.js. Идем дальше.
2: Создание запроса командной строки
Теперь в каталоге вашего проекта создайте новый файл index.js и откройте его в редакторе кода.
В скрипте index.js обязательно укажите inquirer:
Далее добавьте приглашение командной строки, которое предложит пользователю ввести название его любимой рептилии:
Вернитесь в терминал и запустите наш новый сценарий:
Вы получите такое приглашение командной строки:
Введите какой-нибудь ответ, и он отобразится на экране:
Вы можете задать в сценарии значение по умолчанию, default, которое позволяет пользователю не заполнять поле, просто нажав Enter. В файл index.js добавьте:
Снова запустите свой сценарий, и вы получите тот же запрос, но уже со стандартным ответом.
Если вы нажмете ввод, скрипт подставит стандартный ответ Alligators:
Теперь вы знаете, как добавить в сценарий запрос командной строки с ответом по умолчанию.
3: Создание нескольких запросов командной строки
Еще раз откройте index.js в редакторе кода и добавьте в скрипт новый запрос командной строки. Допустим, он будет спрашивать у пользователя его любимый цвет:
Запустите сценарий еще раз, и вы получите от командной строки два запроса:
Теперь вы знаете, как создать несколько приглашений командной строки.
4: Типы запросов
Пакет inquirer позволяет пользователю не только вводить текст, он поддерживает широкий ряд типов запросов: list, rawlist, expand, checkbox, password и editor. Далее мы рассмотрим каждый из них в отдельности, но вы вполне можете совместить их, передавая в одном массиве.
Тип list
Тип list позволяет вам предоставить пользователю фиксированный набор опций, из которых он может выбрать свой вариант (вместо свободного ввода, который предоставляет тип input).
Создайте файл list.js и поместите в него:
Вернитесь в терминал и запустите этот скрипт:
На этот раз в приглашении командной строки вы увидите список доступных вариантов ответа:
Для перемещения по списку пользователь может использовать клавиши со стрелкой вверх и вниз. Также возможна навигация с помощью клавиш j и k.
Тип rawlist
Тип rawlist похож на list. Он отображает список доступных вариантов, но также позволяет пользователю ввести индекс выбранного ответа (индексация начинается с 1). Создайте скрипт rawlist.js и поместите в него такие строки:
Вернитесь в окно терминала и запустите этот сценарий:
Вам будет представлено такое приглашение:
Отправка недопустимого значения приведет к ошибке “Please enter a valid index”.
Тип expand
Тип expand предоставляет список символов, каждый из которых связан с отдельной функцией. Чтобы выбрать ту или иную функцию, вы должны ввести соответствующий символ. Этим expand напоминает некоторые приложения командной строки. Приглашение типа expand сначала представит пользователю список доступных символов, а потом – контекст.
Давайте создадим файл expand.js и вставим в него такие строки:
Вернитесь в окно терминала и запустите новый сценарий:
Вы увидите такой запрос:
? Which is better? (acH)
По умолчанию в этот тип включена опция H, что означает «Help». Введите H и нажмите ввод, чтобы переключиться на список опций. Вы увидите, что символы а и с – это индексы ответов alligator и crocodile. То есть чтобы выбрать один из этих ответов, нужно ввести соответствующий символ.
h) Help, list all options
Отправка недопустимого значения приведет к ошибке «Please enter a valid command».
Тип checkbox
Тип checkbox также похож на list. Но вместо одного ответа он позволяет выбрать несколько вариантов.
Создайте сценарий checkbox.js и поместите в него такие строки кода:
Теперь вернитесь в терминал и запустите сценарий:
На экране появится следующее приглашение командной строки:
Как и в других типах вопросов, здесь для навигации можно использовать клавиши со стрелками. Чтобы сделать выбор, нажмите пробел; также вы можете выбрать все варианты с помощью a (чтобы инвертировать выделение, используйте i).
В отличие от других типов приглашений inquirer, ответ этого типа будет содержать массив, а не строку. Кроме того, ответ всегда будет представлен массивом, даже если пользователь не выбрал ни одного варианта.
Тип password
Тип password скроет ввод пользователя. Это позволяет запрашивать конфиденциальную информацию, которую не следует видеть посторонним.
Создайте скрипт password.js и вставьте в файл следующее:
Затем вернитесь в терминал и запустите его:
Вам будет предложено ввести пароль:
Ваш ввод будет скрыт.
Тип editor
Тип editor позволяет пользователям использовать их стандартный текстовый редактор для ввода больших фрагментов текста.
Поместите такие строки в файл editor.js, чтобы посмотреть, как работает этот тип:
Вернитесь в окно терминала и запустите сценарий:
Вам будет предложено выбрать редактор:
Заключение
В этом мануале вы установили пакет Inquirer.js и изучили некоторые его основные функции. Этот инструмент поможет вам запросить информацию у ваших пользователей.
Если вы хотите продолжить изучение этого пакета самостоятельно, начните с плагинов. Обратите внимание на inquirer-autocomplete-prompt, inquirer-search-list и inquirer-table-prompt.
Интерактивные запросы
SQL является языком интерактивных запросов, который обеспечивает пользователям немедленный доступ к данным. С помощью SQL пользователь может в интерактивном режиме получить ответы на самые сложные запросы в считанные минуты или секунды, тогда как программисту потребовались бы дни или недели, чтобы написать для пользователя соответствующую программу. Из-за того, что SQL допускает немедленные запросы, данные становятся более доступными и могут помочь в принятии решений, делая их более обоснованными.
Программный доступ к базе данных
Программисты пользуются языком SQL, чтобы писать приложения, в которых содержатся обращения к базам данных. Одни и те же операторы SQL используются как для интерактивного, так и для программного доступа, поэтому части программ, содержащие обращения к базе данных, можно вначале тестировать в интерактивном режиме, а затем встраивать в программу. В традиционных базах данных для программного доступа используются одни программные средства, а для выполнения немедленных запросов — другие, без какой либо связи между этими двумя режимами доступа.
Различные представления данных
С помощью SQL создатель базы может сделать так, что различные пользователи базы данных будут видеть различные представления её структуры и содержимого. Например, базу данных можно спроектировать таким образом, что каждый пользователь будет видеть только данные, относящиеся к его подразделению или торговому региону. Кроме того, данные из различных частей базы данных могут быть скомбинированы и представлены пользователю в виде одной простой таблицы. Следовательно, представления можно использовать для усиления защиты базы данных и ее настройки под конкретные требования отдельных пользователей.
Полноценный язык для работы с базами данных
Первоначально SQL был задуман как язык интерактивных запросов, но сейчас он вышел далеко за рамки чтения данных. SQL является полноценным и логичным языком, предназначенным для создания базы данных, управления ее защитой, изменения ее содержимого, чтения данных и совместного использования данных несколькими пользователями, работающими параллельно. Приемы, освоенные при изучении одного раздела языка, могут затем применяться в других командах, что повышает производительность работы пользователей.
интерактивный запрос
Смотреть что такое «интерактивный запрос» в других словарях:
ИНТЕРАКТИВНЫЙ РЕЖИМ — ИНТЕРАКТИВНЫЙ РЕЖИМ. Режим взаимодействия пользователя с компьютером, при котором каждый запрос пользователя вызывает немедленное ответное действие компьютера; обмен сообщениями между пользователем и компьютерной системой в режиме реального… … Новый словарь методических терминов и понятий (теория и практика обучения языкам)
ftp (программа) — У этого термина существуют и другие значения, см. FTP (значения). ftp Типичная сессия ftp … Википедия
Отечественная война 1812 года — Запрос «Отечественная война» перенаправляется сюда; см. также другие значения. У этого термина существуют и другие значения, см. Война 1812 года. Отечественная война 1812 года Наполеоновские войны … Википедия
Uninterruptable Power Supply — Запрос «ИБП» перенаправляется сюда. Cм. также другие значения. Источник бесперебойного питания, (ИБП) (англ. UPS Uninterruptible Power Supply) автоматическое устройство, позволяющее подключенному оборудованию некоторое (как правило… … Википедия
ИБП — Запрос «ИБП» перенаправляется сюда. Cм. также другие значения. Источник бесперебойного питания, (ИБП) (англ. UPS Uninterruptible Power Supply) автоматическое устройство, позволяющее подключенному оборудованию некоторое (как правило… … Википедия
Устройство бесперебойного питания — Запрос «ИБП» перенаправляется сюда. Cм. также другие значения. Источник бесперебойного питания, (ИБП) (англ. UPS Uninterruptible Power Supply) автоматическое устройство, позволяющее подключенному оборудованию некоторое (как правило… … Википедия
Python — У этого термина существуют и другие значения, см. Python (значения). Python Класс языка: му … Википедия
Google — У этого термина существуют и другие значения, см. Google (значения). Google … Википедия
Internet Information Services — Разработчик Microsoft Операционная система Microsoft Windows NT Последняя версия 7.5 Тестовая версия 8.0 Лицензия Проприетарная Сайт … Википедия
SmapeR — (Java, Symbian, Windows Mobile) Тип Программа мгновенного обмена сообщениями Разработчик Smaper(Smape.com) ОС Symbian … Википедия
Sql — Содержание 1 История 1.1 Вопросы совместимости 2 Преимущества и недостатки … Википедия
Типы HTTP-запросов и философия REST
Этот пост — ответ на вопрос, заданный в комментарии к одной из моих статей.
В статье я хочу рассказать, что же из себя представляют HTTP-методы GET/POST/PUT/DELETE и другие, для чего они были придуманы и как их использовать в соответствии с REST.
Итак, что же представляет из себя один из основных протоколов интернета? Педантов отправлю к RFC2616, а остальным расскажу по-человечески 🙂
Этот протокол описывает взаимодействие между двумя компьютерами (клиентом и сервером), построенное на базе сообщений, называемых запрос (Request) и ответ (Response). Каждое сообщение состоит из трех частей: стартовая строка, заголовки и тело. При этом обязательной является только стартовая строка.
Стартовые строки для запроса и ответа имеют различный формат — нам интересна только стартовая строка запроса, которая выглядит так:
где METHOD — это как раз метод HTTP-запроса, URI — идентификатор ресурса, VERSION — версия протокола (на данный момент актуальна версия 1.1).
Заголовки — это набор пар имя-значение, разделенных двоеточием. В заголовках передается различная служебная информация: кодировка сообщения, название и версия браузера, адрес, с которого пришел клиент (Referrer) и так далее.
Тело сообщения — это, собственно, передаваемые данные. В ответе передаваемыми данными, как правило, является html-страница, которую запросил браузер, а в запросе, например, в теле сообщения передается содержимое файлов, загружаемых на сервер. Но как правило, тело сообщения в запросе вообще отсутствует.
Пример HTTP-взаимодействия
Первая строка — это строка запроса, остальные — заголовки; тело сообщения отсутствует
Ресурсы и методы
Вернемся к стартовой строке запроса и вспомним, что в ней присутствует такой параметр, как URI. Это расшифровывается, как Uniform Resource Identifier — единообразный идентификатор ресурса. Ресурс — это, как правило, файл на сервере (пример URI в данном случае ‘/styles.css’), но вообще ресурсом может являться и какой-либо абстрактный объект (‘/blogs/webdev/’ — указывает на блок «Веб-разработка», а не на конкретный файл).
Тип HTTP-запроса (также называемый HTTP-метод) указывает серверу на то, какое действие мы хотим произвести с ресурсом. Изначально (в начале 90-х) предполагалось, что клиент может хотеть от ресурса только одно — получить его, однако сейчас по протоколу HTTP можно создавать посты, редактировать профиль, удалять сообщения и многое другое. И эти действия сложно объединить термином «получение».
В игру вступает REST
REST (REpresentational State Transfer) — это термин был введен в 2000-м году Роем Филдингом (Roy Fielding) — одним из разработчиков протокола HTTP — в качестве названия группы принципов построения веб-приложений. Вообще REST охватывает более широкую область, нежели HTTP — его можно применять и в других сетях с другими протоколами. REST описывает принципы взаимодействия клиента и сервера, основанные на понятиях «ресурса» и «глагола» (можно понимать их как подлежащее и сказуемое). В случае HTTP ресурс определяется своим URI, а глагол — это HTTP-метод.
REST предлагает отказаться от использования одинаковых URI для разных ресурсов (то есть адреса двух разных статей вроде /index.php?article_id=10 и /index.php?article_id=20 — это не REST-way) и использовать разные HTTP-методы для разных действий. То есть веб-приложение, написанное с использованием REST подхода будет удалять ресурс при обращении к нему с HTTP-методом DELETE (разумеется, это не значит, что надо давать возможность удалить всё и вся, но любой запрос на удаление в приложении должен использовать HTTP-метод DELETE).
REST дает программистам возможность писать стандартизованные и чуть более красивые веб-приложения, чем раньше. Используя REST, URI для добавления нового юзера будет не /user.php?action=create (метод GET/POST), а просто /user.php (метод строго POST).
В итоге, совместив имеющуюся спецификацию HTTP и REST-подход наконец-то обретают смысл различные HTTP-методы. GET — возвращает ресурс, POST — создает новый, PUT — обновляет существующий, DELETE — удаляет.
Проблемы?
Да, есть небольшая проблема с применением REST на практике. Проблема эта называется HTML.
PUT/DELETE запросы можно отправлять посредством XMLHttpRequest, посредством обращения к серверу «вручную» (скажем, через curl или даже через telnet), но нельзя сделать HTML-форму, отправляющую полноценный PUT/DELETE-запрос.
Дело в том, спецификация HTML не позволяет создавать формы, отправляющие данные иначе, чем через GET или POST. Поэтому для нормальной работы с другими методами приходится имитировать их искусственно. Например, в Rack (механизм, на базе которого Ruby взаимодействует с веб-сервером; с применением Rack сделаны Rails, Merb и другие Ruby-фреймворки) в форму можно добавить hidden-поле с именем «_method», а в качестве значения указать название метода (например, «PUT») — в этом случае будет отправлен POST-запрос, но Rack сможет сделать вид, что получил PUT, а не POST.
Интерактивные результаты поиска
Помимо расширенных результатов поиска в Google реализован ещё более полезный и эффективный формат: интерактивные результаты поиска. В них могут использоваться всплывающие окна или другие интерактивные функции. Например, вот всплывающее окно, которое появляется в Google Вакансиях при поиске по запросу jobs in mountain view (Вакансии в Маунтин-Вью):
Интерактивные результаты поиска дают пользователю возможность самому выбирать различную информацию, представленную в структурированных данных. Например, можно искать рецепт куриного супа, калорийность которого не превышает 200 ккал, или рецепты блюд со временем приготовления не более часа.
Как обеспечить поддержку интерактивного поиска
Интерактивные результаты поиска являются разновидностью расширенных результатов и формируются с помощью структурированных данных. Иногда интерактивные результаты совпадают с расширенными, как в случае рецептов, вакансий и мероприятий, а иногда для того, чтобы расширенные результаты стали интерактивными, необходимо добавить дополнительные свойства. В документации по типам расширенных результатов указано, в каких случаях и как именно на их основе можно получить интерактивные результаты.
При интерактивном поиске используется алгоритм ранжирования Google Поиска. Вам необходимо не только добавить на свой сайт корректные структурированные данные, но и соблюдать наши рекомендации по обеспечению их качества.
Запросы с поддержкой интерактивного поиска
Интерактивный поиск поддерживается для следующих типов запросов:
Рекомендации по обеспечению качества интерактивного поиска
Функции интерактивного поиска поддерживаются только при соблюдении приведенных ниже правил. Если алгоритм ранжирования определяет, что большая часть страниц сайта не соответствует критериям качества, из результатов интерактивного поиска может быть исключен весь ресурс.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.