Что такое управление запросами на обслуживание? Руководство
ИТ-команды получают широкий спектр запросов от клиентов. Независимо от того, что запрашивают клиенты: доступ к приложениям, лицензии на ПО, сброс паролей или новое оборудование, — библиотека инфраструктуры информационных технологий (ITIL) классифицирует их как запросы на обслуживание. Запросы на обслуживание часто повторяются, поэтому эффективные ИТ-команды следуют воспроизводимой процедуре их обработки.
Управление запросами на обслуживание связано с другими процессами управления услугами, включая управление инцидентами, проблемами и изменениями, но все же занимает отдельную нишу. Только управление запросами на обслуживание подразумевает, что пользователь отправляет запрос на что-то новое, будь то доступ к сервису, новый телефон или информация.
В ITIL говорится, что вместе со службой поддержки запросы на обслуживание подчиняются процессу выполнения запроса.
Что такое выполнение запроса?
Выполнение запроса — это процесс решения запроса на обслуживание клиента, который относится к управлению полным жизненным циклом всех запросов на обслуживание. Команда службы поддержки стремится реагировать на запросы и выполнять их, обеспечивая при этом высочайший уровень качества поддержки клиента.
Выполнение запросов заключается в предоставлении сотрудникам доступа к ИТ-услугам, необходимым для продуктивной работы. Процесс должен помогать пользователям узнавать о доступных сервисах, понимать, как отправить запрос, и формировать ожидания относительно сроков обработки запросов.
В организациях, которые получают большое количество запросов на обслуживание, разумно обрабатывать запросы как отдельный рабочий поток, а также фиксировать их и управлять ими как отдельным типом записей. Этот процесс нужно отделить от других ИТ-процессов.
Сравнение управления инцидентами и управления запросами на обслуживание
Распространенный вопрос об управлении запросами на обслуживание заключается в том, как оно связано с основными процессами ИТ, включая управление инцидентами, проблемами и изменениями. Стоит кратко осветить некоторые ключевые термины, прежде чем разбирать их различия.
- Запрос на обслуживание — официальный запрос пользователя на получение чего-либо нового. Например, запрос на новый Macbook.
- Инцидент — внеплановое событие, которое подрывает или снижает качество обслуживания и требует экстренного реагирования. Например, сбой в работе сайта.
- Проблема — основная причина повторяющихся или предотвратимых инцидентов. Например, повторное возникновение неполадки в работе приложения.
- Изменение — добавление, модификация или удаление чего-либо, что может повлиять на ИТ-сервис. Оно может быть частью запроса на обслуживание. Например, запрос на обновление базы данных.
Запросы на обслуживание должны обрабатываться как отдельный рабочий поток, чтобы ИТ-команды могли сосредоточиться на выполнении ценной работы и более эффективной поддержке остальной части организации. Запросы на обслуживание довольно часто сопряжены с низким риском, поэтому их можно обрабатывать в ускоренном и даже автоматическом режиме. Например, если новый сотрудник отправляет запрос на обслуживание для получения доступа к программному приложению, этот запрос может быть предварительно одобрен и автоматически удовлетворен.
Все это облегчает работу, экономит время ИТ-команд и избавляет их от чрезмерно сложных рабочих процессов. Учитывая разнообразие входящих запросов на изменения, решение инцидентов и обслуживание, которые необходимо обрабатывать, отдельные рабочие потоки и записи позволят команде понять, как лучше всего распределить ресурсы.
Процесс управления запросами на обслуживание
Несмотря на то, что существуют разные способы фиксации и выполнения запросов на обслуживание, для повышения общего качества и эффективности обслуживания важно привести такие запросы к единому стандарту. Следующий простой процесс выполнения запросов основан на рекомендациях ITIL. Его можно использовать в качестве отправной точки для настройки существующих процессов ITIL или для создания новых процессов.
Коротко о процессе выполнения запроса.
- Клиент запрашивает помощь на портале службы поддержки или по электронной почте.
- Команда ИТ-поддержки оценивает запрос при помощи заранее определенных процессов подтверждения и проверки. При необходимости она отправляет запрос на подтверждение в финансовый или коммерческий отдел.
- Агент службы поддержки выполняет запрос на обслуживание самостоятельно или перенаправляет его тому, кто может его обработать.
- После решения запроса агент закрывает заявку и связывается с клиентом, чтобы убедиться, что проблема устранена.
Приоритеты управления запросами на обслуживание
Хороший способ управления запросами на обслуживание ориентирован на клиента, опирается на знания и оптимизирован благодаря автоматизации. Применяя эти принципы во всех процессах, ваша организация может повысить эффективность команды ИТ-поддержки, облегчить для клиентов обращение за помощью и ее получение, а также использовать технологии, чтобы выдерживать ритм меняющихся потребностей компании.
Ниже приведены рекомендации, касающиеся того, чему команды ИТ-поддержки должны уделять внимание в первую очередь, чтобы понимать потребности клиента и предоставлять наилучшее обслуживание.
Поддержка для команды поддержки
Незаметные герои любой организации, команды поддержки, по понятным причинам тонут в потоке заявок, которые они обрабатывают. Время и ресурсы, затрачиваемые на обработку запросов на обслуживание часто превышают установленные лимиты. Команды ИТ-поддержки в крупных корпорациях постоянно реагируют на запросы компаний и привыкают отвечать в первую очередь тем клиентам, которые громче всех заявляют о себе. Между тем клиенты жалуются, что со службой поддержки трудно взаимодействовать, она не реагирует и очень долго обрабатывает запросы, которые важны для работы. В итоге они видят в ИТ источник препятствий на своем пути. Так быть не должно.
Чтобы обеспечить лучшее обслуживание клиентов, важно сосредоточиться на благополучии и развитии передовых команд поддержки. Типичные многоуровневые команды хорошо структурированы и управляют запросами с помощью эскалации. Рекомендуется использовать коллективный подход к управлению запросами на обслуживание. При таком подходе каждый участник команды может связаться с клиентом и ответить на его вопросы. Когда ИТ-команды совместно «штурмуют» задачи в таких инструментах, как Slack, все участники учатся на реальных прецедентах.
На регулярных ретроспективах команды могут разбирать, что происходило ранее (желательно делать это каждую неделю). Это дает возможность обсудить вопросы внутри команды, выявить области для улучшения и убедиться, что запросы направляются соответствующим командам. Стать командой, ориентированной на обучение и непрерывное совершенствование, означает стать командой ИТ-поддержки, которая в первую очередь заботится об интересах клиента.
Работа в ИТ может быть сложной и неблагодарной. Компания Atlassian рекомендует командам поддержки регулярно проводить оценку работоспособности для определения и принятия мер по улучшению команды.
Сдвиг влево
Самый известный способ вырваться из хаоса запросов на обслуживание — это сделать «сдвиг влево». Что это значит? Это значит переместить выполнение запроса ближе к передовой линии — и клиенту — насколько это возможно. Это улучшает качество обслуживания клиентов, ускоряет время решения, упрощает работу службы поддержки и снижает общую стоимость выполнения запроса.
Например, ваша база знаний с возможностью поиска по статьям может творить чудеса, сокращая количество заявок. А настройка форм приема заявок позволит собрать нужную информацию и спасет от длительной переписки с клиентом.
Клиенты хотят получать поддержку в одном месте. Централизуйте интерфейс, в котором они могут обращаться за помощью, и сделайте его максимально удобным и доступным. Многие организации создали портал самообслуживания, которым так никто и не воспользовался. Учитесь на их ошибках и создайте платформу, которая органично впишется в уникальную культуру вашей организации. Помните, что даже самая мощная система самообслуживания не принесет пользы, если клиентам трудно ее найти.
Преимущества автоматизации
Дополнив процесс самообслуживания автоматизацией, вы уменьшите общую рабочую нагрузку ИТ-команды, поскольку оградите агентов от рутинных заданий. Так автоматизация может ускорить последующие информационные взаимодействия, связанные с запросами и выполняемые вручную. Кроме того, она помогает улучшить общение с клиентами и держать заинтересованные стороны в курсе предполагаемого времени решения проблем. Шаблоны ответов на запросы предоставляют клиенту полезную информацию и уменьшают рабочую нагрузку агентов. Часто клиенты не знают, куда обратиться за помощью. В этом случае автоматизацию можно использовать для переадресации запросов на обслуживание подходящей команде, чтобы оперативно решить вопрос.
Будьте готовы к масштабированию
По мере роста организации предоставление услуг становится все более сложным. Больше команд участвуют в управлении очередями запросов. Из-за большей необходимости делегировать обязанности и передавать работу между командами теряется контекст. Мы слышим истории от клиентов, которые приобретают новые бизнес-подразделения или компании и сталкиваются с пугающим процессом их адаптации в существующих системах.
Каталог сервисов содержит сведения о динамичных ИТ-сервисах, доступных для развертывания. Возможность быстрого развертывания каталога сервисов без разработчика позволяет приспосабливаться к меняющимся потребностям компании.
Рекомендации по управлению запросами на обслуживание
Итак, что нужно для создания эффективного процесса управления запросами на обслуживание? Вот восемь советов.
- Начните с наиболее распространенных, простых и легко выполняемых запросов. Их обработка является мгновенной ценностью для клиентов и позволит ИТ-команде учиться по мере создания новых этапов рабочего потока запросов.
- Документируйте все требования к запросам на обслуживание: поля для вопросов, процесс подтверждения, процедуры выполнения, команда, ответственная за выполнение, владелец процесса, SLA, отчетность и т. д. Это поможет ИТ-команде лучше управлять запросами с течением времени. Этот шаг очень важен для более сложных запросов, которые появятся потом.
- Собирайте данные, необходимые для начала выполнения запроса, при его получении, но не перегружайте клиента вопросами.
- Стандартизируйте и автоматизируйте процесс подтверждения во всех случаях, где это возможно. Например, все запросы на новые мониторы считаются предварительно одобренными (и автоматически выполняются, если это возможно), а все запросы на ПО должны быть подтверждены менеджером клиента.
- Изучите процесс и процедуры выполнения запроса, чтобы определить, какие команды поддержки отвечают за выполнение запроса и существуют ли особые требования к выполнению. Стремитесь автоматизировать все, что возможно.
- Определите, какая информация должна быть доступна в базе знаний при создании типового запроса. Общая цель самообслуживания заключается в том, чтобы как можно быстрее удовлетворять запросы клиентов и по возможности сокращать их количество. Если можно добавить ответ в раздел часто задаваемых вопросов, используйте эту информацию при создании типового запроса на обслуживание.
- Ознакомьтесь с соглашениями об уровне обслуживания (SLA). Убедитесь, что у вас есть надлежащие показатели и уведомления, чтобы запросы выполнялись своевременно.
- Определите, какие отчеты и показатели необходимы для надлежащего управления жизненным циклом запроса на обслуживание. Начните отслеживать такие показатели, как CSAT (индекс удовлетворенности клиентов), время до ответа, время решения и время до закрытия.
Резюме
Надлежащее управление запросами на обслуживание означает, что вы даете ИТ-команде возможность сосредоточиться на том, что наиболее важно для организации в целом, одновременно повышая качество обслуживания клиентов. Гибкий программный инструмент, такой как Jira Service Management, может помочь вашей команде навести порядок и настроить рабочие процессы согласно потребностям команды.
Протестируйте Jira Service Management
Использование параметров для ввода данных при выполнении запроса
Чтобы настроить в запросе к базе данных рабочего стола Access ввод условий при его выполнении, создайте запрос с параметрами. Это даст возможность использовать запрос повторно, не открывая его в Конструктор для изменения условий.
Примечание: Эта статья не относится к веб-приложениям Access.
Терминология
Прежде чем перейти к описанной ниже пошаговой процедуре, полезно ознакомиться с несколькими терминами.
-
Параметр. Параметр — это часть сведений, предоставляемых запросу при его выполнении. Параметры можно использовать отдельно или в составе длинных выражений для формирования условия запроса. Параметры можно добавить в запрос любого из следующих типов:
-
Условия. Условия — это «фильтры», добавляемые в запрос для указания элементов, которые он должен возвратить.
Дополнительные сведения об указанных выше типах запросов см. в статье Знакомство с запросами.
Создание запроса с параметрами
Создание параметра аналогично добавлению обычного условия в запрос:
-
Создайте запрос на выборку и откройте его в конструкторе.
-
В строке «Условия» поля, к которым вы хотите применить параметр, введите текст, который вы хотите отобразить в поле параметра, в квадратных скобках. Например: [Введите дату начала:]
Повторите шаг 2 для каждого поля, в которое необходимо добавить параметры.
При запуске запроса текст отображается без квадратных скобок.
Введите нужное значение и нажмите кнопку ОК.
В условии можно использовать несколько параметров. Например, выражение Between [Введите дату начала:] And [Введите дату окончания:] при выполнении запроса создаст два поля.
Указание типов данных для параметра
Можно настроить параметр так, чтобы он принимал только определенный тип данных. Это особенно важно для числовых и денежных данных, а также данных даты и времени, так как в таком случае пользователи получат более содержательное сообщение об ошибке при вводе неправильного типа данных, например при вводе текста вместо денежного значения.
Примечание: Если параметр настроен на прием текстовых данных, любое введенное значение будет распознаваться как текст, а сообщение об ошибке не будет выводиться.
Чтобы задать тип данных для параметра в запросе, выполните указанные ниже действия.
-
Когда запрос открыт в конструкторе, на вкладке Конструктор в группе Показать или скрыть нажмите кнопку Параметры.
-
В диалоговом окне Параметры запроса в столбце Параметр введите текст запроса на ввод каждого из параметров, для которых требуется указать тип данных. Проверьте, соответствуют ли параметры запросам на ввод, указанным в строке
-
В столбце Тип данных выберите тип данных для каждого параметра.
Добавление параметра в запрос на объединение
Так как запрос на объединение нельзя просмотреть в бланке запроса, действия с ним будут немного отличаться.
Откройте запрос на объединение в режиме SQL.
-
Добавьте к нему предложение WHERE, содержащее поля, в которые нужно добавить параметры.
Если предложение WHERE уже существует, проверьте, включены ли в него все поля, в которые нужно добавить параметры. Если нет, добавьте недостающие поля.
-
Введите запрос параметра в предложение WHERE, например WHERE [StartDate] = [Введите дату начала:].
Имейте в виду, что во все разделы запроса необходимо добавить одинаковые фильтры. На рисунке выше запрос содержит два раздела (разделенные ключевым словом UNION), поэтому параметр нужно добавить дважды. Но при выполнении запроса ввод данных запрашивается только один раз (предполагается, что во всех разделах указан одинаковый запрос).
Дополнительные сведения о запросах на объединение см. в статье Использование запроса на объединение для просмотра объединенных результатов нескольких запросов.
Объединение параметров с помощью подстановочных знаков для большей гибкости
Как и в случае обычных условий, вы можете объединить параметры с помощью ключевого слова Like и подстановочных знаков для поиска соответствий в более широком диапазоне элементов. Предположим, что нужно запросить страну или регион и при этом сопоставить их со значениями, которые содержат строку параметра. Для этого выполните указанные ниже действия.
-
Создайте запрос на выборку и откройте его в конструкторе.
-
В строке Условия поля, в которое нужно добавить параметр, введите Like «*»&[, текст сообщения, а затем ]&»*».
При запуске запроса с параметрами запрос появляется в диалоговом окне без квадратных скобок и без ключевого слова Like или
поддиаметров:
После ввода параметра запрос возвратит значения, содержащие строку параметра.
Дополнительные сведения о подстановочных знаках см. в статье Использование подстановочных знаков в качестве условий.
Возврат элементов, не соответствующих параметру
Вместо возврата элементов, соответствующих параметру, можно создать запрос, возвращающий элементы, которые ему не соответствуют. Например, может потребоваться запросить год и возвратить элементы со значением года, большим чем указанное. Для этого введите оператор сравнения слева от запроса параметра в квадратных скобках, например
Видео: использование параметров в запросах
Использовать в запросе параметр не сложнее, чем создать запрос на основе условий. Запрос можно настроить таким образом, чтобы предлагалось ввести определенное значение, такое как артикул товара, или несколько значений, например две даты. Для каждого параметра запрос выводит отдельное диалоговое окно, в котором предлагается ввести значение.
В этом видео подробнее рассказывается о создании параметров в запросах.
Формальная логика “request-response” в изучении английского: преимущества программистов / Хабр
Я всегда утверждаю, что самые талантливые лингвисты — это программисты. Связано это с их образом мышления, или, если хотите, с некоторой профессиональной деформацией.
Для раскрытия темы приведу несколько историй из жизни. Когда в СССР был дефицит, а мой муж был маленьким мальчиком, его родители где-то достали колбасу и подали на стол на праздник. Гости ушли, мальчик посмотрел на оставшуюся на столе колбасу, нарезанную аккуратными кружками, и спросил, нужна ли она ещё. “Бери бери!” — разрешили родители. Ну, он взял, пошел во двор, и стал с помощью колбасы учить соседских кошек ходить на задних лапках. Папа с мамой увидели и возмутились разбазариванием дефицитного продукта. А мальчик недоумевал, и даже обиделся. Ведь он же не втихушку стащил, а честно спросил, нужна ли еще колбаса…
Нет нужды говорить, что этот мальчик, когда вырос, стал программистом.
К зрелому возрасту таких забавных историй у айтишника накопилось множество. Например, однажды я попросила мужа купить курицу. Покрупнее и побелее по цвету чтобы птичка была. Он с гордостью принес домой огромную белую… утку. Я спросила, неужели он хотя бы по цене (утка стоит гораздо дороже) не задумался, ту ли птицу он покупает? Ответом мне было: “Ну, ты же о цене ничего не говорила. Сказала, птичку покрупнее и побелее. Я и выбрал из всего ассортимента самую крупную и самую белую ощипанную птицу! Задачу выполнил.” Я облегченно выдохнула, поблагодарив про себя небеса за то, что в магазине в тот день не было индейки. В общем, на ужин была утка.
Ну, и масса других ситуаций, в которых человек неподготовленный может заподозрить жесткий троллинг и даже обидеться. Гуляем по восхитительному южному пляжу, я мечтательно говорю: “Эх, так хочется чего-нибудь вкусненького…” Он, оглядевшись, заботливо спрашивает: “Хочешь, нарву плодов кактуса?”
Я надулась, едко поинтересовавшись, не пришло ли ему случайно в голову сводить меня в уютное кафе с пирожными, например. Муж ответил, что кафе в округе не увидел, а вот плоды опунции, которые он заметил в зарослях кактуса, очень даже вкусны, и вполне могут удовлетворить мой запрос. Логично.
Обижаться? Обнять и простить? Посмеяться?
Данную особенность профессионального мышления, порой провоцирующую курьезы в быту, айтишники могут поставить себе на службу в нелегком деле изучения английского.
Проиллюстрированный выше способ мышления (не будучи психологом, рискну условно охарактеризовать его как формально-логический),
а) резонирует с некоторыми принципами работы человеческого подсознания;
б) как нельзя лучше резонирует с некоторыми аспектами грамматической логики английского.
Особенности подсознательного восприятия запроса
Психология считает, что человеческое подсознание понимает все буквально и не обладает чувством юмора. Как и компьютер, с которым айтишник “общается” больше времени, чем с людьми. Подслушала у одного практикующего психолога метафору: “Подсознание — это великан, у которого нет глаз, нет чувства юмора, и который всё понимает буквально. А сознание — это зрячий лилипут, который сидит на шее великана и им управляет.”
Какая команда считывается великаном-подсознанием, когда лилипут-сознание произносит: “Мне нужно изучить английский”? Подсознание принимает REQUEST: “изучить английский”. Простодушный “великан” усердно начинает работать над выполнением команды, выдавая RESPONSE: процесс изучения. Вы узнаете, что в английском есть герундий, есть глагол to be, есть активный залог, есть пассивный залог, есть видовременные формы, есть сложное дополнение и сослагательное наклонение, есть актуальное членение, есть синтагмы, и т.д.
Изучали ли вы язык? Да. “Великан” выполнил поставленную задачу — вы честно изучали язык. Овладели ли вы английским на практике? Вряд ли. Запроса на овладение подсознание не получало.
Чем же различается изучение и овладение?
Изучение — это анализ, расчленение целого на части. Овладение — это синтез, сборка частей в целое. Подходы, прямо скажем, противоположные. Методики у изучения и у практического овладения разные.
Если конечная цель — научиться пользоваться языком как инструментом, то и формулировать задачу следует буквально: “Мне нужно овладеть английским.” Будет меньше разочарований.
Каков request, таков и response
Как упоминалось выше, английскому языку присущ некий формализм. К примеру, на поставленный вопрос нельзя в английском ответить как угодно. Можно ответить лишь в той форме, в которой он задан. Таким образом, на вопрос “Have you eaten the cake?” можно ответить лишь в той же грамматической форме с have: “Yes, I have / No, I haven’t.” Никаких “do” или “am”. Точно так же, на “Did you eat the cake?” правильно будет ответить “Yes, I did / No, I didn’t.”, и никаких “had” или “was”. Каков вопрос, таков ответ.
У русскоязычных часто вызывает недоумение момент, когда в английском, чтобы разрешить что-то, необходимо ответить отрицательно, а чтобы запретить, — положительно. Например:
- Do you mind my smoking? — Yes, I do. — (Вы запретили курить в Вашем присутствии. )
- Do you mind my smoking? — No, I don’t. — (Вы разрешили закурить.)
Ведь естественный инстинкт русскоязычного сознания — разрешая, ответить “да”, а запрещая, — “нет”. Почему же в английском все наоборот?
Формальная логика. Отвечая на вопрос в английском, мы откликаемся не столько на реальную ситуацию, сколько на грамматику предложения, которое слышим. А в грамматике у нас вопрос звучит: “Do you mind?” — “Возражаете ли Вы?”. Соответственно, отвечая “Yes, I do.” — собеседник, откликаясь на грамматическую логику, утверждает “Да, возражаю”, т.е., запрещает, а вовсе не разрешает действие, как было бы логично для ситуативной логики. Каков вопрос, таков и ответ.
Аналогичное столкновение ситуативной и грамматической логики провоцируют просьбы типа “Could you…?” Не удивляйтесь, если в ответ на Ваше:
- Could you pass me the salt, please?
англичанин ответит: - Yes, I could.
… и спокойно продолжит свою трапезу, так и не передав вам соль. Вы его спросили, может ли он передать соль. Он ответил, что может. Вы ведь не попросили его передать ее вам: “Would you…?” Носители английского частенько так шутят. Возможно, истоки знаменитого английского юмора кроются как раз на стыке противоречия грамматической и ситуативной логики… Совсем как юмор программистов, не находите?
Таким образом, приступая к освоению английского, имеет смысл пересмотреть формулировку запроса. Ведь когда мы приходим, например, в автошколу, мы говорим: “Мне нужно научиться водить автомобиль”, а не “Мне нужно изучить автомобиль”.
Более того, работая с преподавателем, студент вступает во взаимодействие с его когнитивной системой. У преподавателя тоже есть подсознание, работающее, как у всех людей, по принципу “request-response”. Если преподаватель не настолько опытный, чтобы “переводить” запрос обучаемого на язык его реальных потребностей, подсознание преподавателя также может воспринять запрос ученика как запрос на изучение, а не на овладение. И преподаватель с энтузиазмом откликнется и удовлетворит запрос, но предложенная к изучению информация не будет являться реализацией истинной потребности студента.
“Бойтесь своих желаний” (С)? Ищите преподавателя-телепата, умеющего переводить ваши запросы на язык ваших реальных потребностей? Корректно формулируйте ‘request’? Необходимое подчеркнуть. При грамотном подходе к делу, лучше всех обучающихся английским должны владеть именно программисты, как из-за особенностей их мировосприятия, так и из-за особенностей английского языка как такового. Залог успеха — правильный подход.
Что такое пул-реквесты и зачем они нужны?
Перевод статьи «What’s the Point of Pull Requests Anyway?»
Photo by Vadim Sherbakov on UnsplashЕсли вы еще новичок в мире Git и тесно связанных с ним платформ (например, GitHub или GitLab), то вы могли и не слышать таких терминов, как пул-реквест (pull request) или мерж-реквест (merge request). И даже если что-то такое слышали, то можете не знать, что означают эти термины и зачем нужны эти самые «реквесты».
Примечание. В статье я буду использовать термин «пул-реквест», но по сути это то же самое, что мерж-реквест, только последний используется на GitLab.
Пул-реквесты помогают командам создавать программы и распространять их. Чтобы вникнуть в саму идею, придется немного напрячься, но я уверен, что дело того стоит. Моя цель — помочь вам познакомиться с пул-реквестами и рассказать, какое место они занимают в процессе разработки ПО.
Что такое пул-реквест?
Пул-реквест это запрос (англ. request — «запрос») на интеграцию изменений из одной ветки в другую. Причем в ветке может быть всего один коммит одного разработчика, а может быть несколько коммитов разных авторов. В большинстве случаев пул-реквест используется для интеграции нового функционала или для исправления бага в основной ветке проекта.
Пул-реквест также содержит короткое описание изменений и причин, по которым эти изменения вносятся. Обычно между автором пул-реквеста и ревьюерами происходит обсуждение этих изменений.
Ревьюеры — это другие разработчики, работающие над этим проектом и способные дать обратную связь по вносимым изменениям. В проектах с открытым исходным кодом в роли ревьюеров обычно выступают ключевые контрибьюторы или мейнтейнеры. В других случаях (например, в вашей команде на работе) ревьюерами бывают более опытные коллеги (разработчики-сеньоры).
Вот как выглядит пул-реквест с простым описанием и ссылкой на issue (проблему) на GitHub:
Теперь, когда мы дали определение пул-реквестам, давайте посмотрим, почему они столь популярны и чем могут быть полезны.
Коммуникация
По сути пул-реквесты облегчают процесс совместной работы с другими людьми. Они позволяют сделать прозрачной коммуникацию между авторами и ревьюерами путем показа дифф-ов (diffs), коммитов (commits) и комментариев, поясняющих изменения.
До пул-реквестов изменения подтверждались по электронной почте или в IRC-каналах. Там писали название ветки или указывали набор коммитов. Чтобы смержить (слить) изменения, мейнтейнер или выпускающий разработчик должен был сравнить изменения с текущей версией кода на собственном компьютере, дать фидбэк, а потом подождать ответа с дополнительными изменениями. Согласованные изменения мержил на своей локальной машине, а затем отправлял их в общую кодовую базу. Пул-реквесты существенно упрощают весь этот процесс.
Особенно это касается крупных проектов, над которыми работают тысячи контрибьюторов. Поэтому многие из подобных проектов придерживаются именно процедуры пул-реквестов. Часто они также применяют рабочий процесс под названием «GitHub flow». GitHub flow предполагает форки целых проектов и создание пул-реквестов в этих форках.
Поначалу все это кажется страшным и непонятным, но не волнуйтесь! Просто помните, что основная идея остается прежней: вы запрашиваете разрешение на перенос изменений из одной ветки в другую.
Еще одно преимущество процедуры пул-реквестов в том, что всем сотрудникам видна вся коммуникация по изменениям. К вашим услугам поиск по внесенным изменениям и возможность использовать теги. В общем, отслеживать происходящее относительно легко. Контекст и предыдущие решения не теряются где-то в потоках электронных писем или окнах чатов. Любой разработчик, участвующий в проекте, может легко найти и просмотреть нужные сведения.
Photo by Norbert Levajsics on UnsplashАвтоматизация
Поскольку пул-реквесты приобрели огромную популярность в сообществе разработчиков, GitHub и другие подобные платформы создали обширный набор вебхуков (webhooks), спроектированных на основе GitHub flow. Эти вебхуки делают возможной автоматизацию работы. В наши дни распространена практика, когда задачи непрерывной интеграции выполняются при каждом коммите, и поэтому являются частью пул-реквеста. По своему опыту могу судить, что это одно из самых подходящих мест для автоматизации. Речь идет не только о запуске автоматизированных тестов. Из изменений в пул-реквесте можно разворачивать целые окружения, чтобы проверить, гладко ли все прошло.
Раньше подобные инструменты интеграции были дорогими. Команде или приходилось поддерживать инфраструктуру для задач автоматизации, либо платить за сервисы. В последнее время все больше инструментов становятся доступными, а значит, настройка автоматизированных задач облегчается. Например, вы можете воспользоваться бесплатными предложениями таких компаний как Netlify и Travis.
GitHub пошел даже еще дальше и выпустил GitHub Actions. Actions позволяют вам создавать рабочие процессы автоматизации из набора отдельных маленьких задач, пригодных для компоновки. Непременно попробуйте!
Проверки статуса
Последнее большое преимущество пул-реквестов это концепция проверок статуса (status checks). Проверки статуса это просто набор задач, выполняемых для каждого коммита в пул-реквесте, и выдающих результат «успех» (success) или «провал» (failure). Это буквально чек-листы для проверки того, готовы ли изменения к отправке в кодовую базу.
Проверять можно что угодно. В большинстве команд проверки статуса состоят из автоматизированных тестов, за которыми следует проверка стиля, после которой проверяется, получил ли этот код одно или два одобрения на ревью. Изменения не могут быть слиты, пока не пройдут все эти проверки.
Стоит также остановиться на теме код-ревью. Поскольку пул-реквесты сильно улучшают возможности коммуникации и сотрудничества, естественно, что многие команды применят их в код-ревью. Таким образом прямо со страницы пул-реквеста можно осуществлять менеджмент ревьюеров, ревью и статуса запросов (одобрено или нет). Во многих крупных проектах есть даже автоматическая процедура добавления отдельных пользователей или групп к пул-реквесту — в зависимости от файлов, которые были изменены. Если хотите пример, посмотрите документацию CODEOWNERS.
Итоги
Если брать коротко, пул-реквест это просто запрос на внедрение изменений из одной ветки в другую. Несмотря на простоту концепции, пул-реквесты являются очень мощным инструментом. Именно поэтому они стали важной частью современной разработки. Пул-реквесты облегчают задачи непрерывной интеграции, код-ревью и проверки статуса, а все вместе это позволяет поддерживать высокий уровень качества кода.
Если раньше репозиторий был просто местом, где хранится код, то с появлением пул-реквестов он стал местом, где хранятся знания об этом коде.
Также пул-реквесты играют большую роль в процессе обучения. Некоторые из самых важных уроков, касающихся разработки программ, я получил в фидбэках терпеливых ревьюеров моих пул-реквестов.
перевод на русский, синонимы, антонимы, произношение, примеры предложений, транскрипция, определение,значение, словосочетания
Варианты
(v1)Варианты
(v2)request [rɪˈkwest] сущ
запросм, просьба, заявкаж, ходатайствоср, заказм, поручениеср
(query, asking, application, order)
- written request – письменный запрос
- request for extradition – просьба о выдаче
- budget request – бюджетная заявка
- second request – повторное ходатайство
- special request – специальный заказ
требованиеср
(requirement)
- payment request – платежное требование
прошениеср
(petition)
- official request – официальное прошение
желаниеср, пожеланиеср
(desire, wish)
- last request – последнее желание
- individual requests – индивидуальные пожелания
обращениеср
(appeal)
request [rɪˈkwest] гл
просить, запрашивать, запросить, попросить, спросить, спрашивать
(ask)
- request the court – просить суд
- requested information – запрашиваемая информация
- requested function – запрошенная функция
- request help – попросить помощь
требовать, потребовать, затребовать
(demand, require)
- request an explanation – потребовать объяснения
предлагать, предложить
(offer)
ходатайствовать
(petition)
обращаться
(contact)
заказать
(order)
испрашивать
(seek)
noun | |||
запрос | request, query, inquiry, demand, message, interpellation | ||
просьба | request, application, plea, petition, wish, entreaty | ||
требование | demand, requirement, request, claim, call, must | ||
заявка | bid, application, request, claim, proposal, requisition | ||
спрос | demand, inquiry, request, market, run, call | ||
verb | |||
запрашивать | request, ask, ax, axe | ||
затребовать | request, require, send an order, requiem | ||
предлагать | offer, suggest, propose, request, submit, proffer | ||
предписывать | prescribe, enjoin, ordain, order, dictate, request |
Синонимы
(v1)Синонимы
(v2)request сущ
- ask · call · seek · ask for · solicit
- query · asking · question · prompt
- inquiry · enquiry
- petition · order · requisition · application · bid · plea · application form · solicitation
- demand · requirement · claim
- wish
- desire
- prayer
noun
- appeal, entreaty, plea, petition, application, demand, call, adjuration, behest
- bidding, entreaty, demand, insistence
- requirement, wish, desire, choice
- asking
- postulation, petition
verb
- ask for, appeal for, call for, seek, solicit, plead for, apply for, demand, adjure
- call on, beg, entreat, implore, beseech
- call for, bespeak, quest
Предложения со словом «request»
Com, you can report bias, request audits, become a tester and join the ongoing conversation, #codedgaze. | Com вы можете сообщить об ошибке, запросить проверку, стать тестировщиком и присоединиться к обсуждению, #codedgaze. |
The problem and the path to the solution — well, maybe that brand only gives out hot sauce upon request or installs bulk dispensers or comes up with more sustainable packaging. | Сразу решение этой проблемы: возможно, производителю давать соус только тем, кому он нужен, установить банки с дозаторами или сделать более экологичную упаковку. |
It’s also critical to getting more people to act like givers, because the data say that somewhere between 75 and 90 percent of all giving in organizations starts with a request . | Она также побуждает людей вести себя подобно дающим, ведь согласно статистике, в организациях около 75–90% случаев помощи друг другу начинаются с просьбы. |
One of the males made a soft-voiced request . | Один из самцов что — то спросил ослабевшим голосом. |
Statistical data followed by a request for a reply. | Просто длинный поток статистических данных за которым идёт просьба ответить. |
I request and require your full cooperation in this examination. | Я желаю и требую вашего полного сотрудничества в этом расследовании. |
The innocent little Princess looked confused by her request . | Молоденькая невинная принцесса, казалось, растерялась от ее просьбы. |
I’m going to grant your request for unlimited discovery. | По вашему запросу я разрешаю неограниченный допуск к материалам. |
Natalie planted the request for assistance from Rome’s police. | Натали разместила просьбу полиции Рима о помощи |
Your personal request to expedite NCP through the system. | Ваш персональный запрос на ускорение процедуры оформления для ЭнСиПи. |
His request for a transplant was denied by his insurance. | Его запрос на пресадку печени был отклонён страховой компанией. |
How can I refuse a dying man’s last request ? | Кaк я могу откaзaть умиpaющeму в eго последнeй проcьбе? |
Do I obey a request and an unspoken promise? | Должна ли я выполнить эту просьбу и непроизнесенное обещание? |
So you’ve never filled out a warrant request before? | Так вы раньше никогда не оформляли заявку на ордер? |
Request permission to be temporarily relieved of duty, sir. | Прошу разрешения временное освобождение от несения службы, сэр |
They request our assistance in bringing an end to hostilities. | Китайское руководство просит нашей помощи в окончании этой войны. |
Claimants are not permitted to request punishment at this stage. | Истец не имеет право требовать наказания на этой стадии. |
Women whose privacy will be violated due to this request … | Женщины, чье право на приватность будет нарушено этим запросом… |
Then his parents can request an exception to the rule. | Тогда его родители могут попросить сделать исключение из правил. |
But surely we can at least request a thorough investigation. | Но по крайней мере мы можем запросить тщательное расследование. |
This is a request for urgent help for disabled veterans! | Это обращение о срочной помощи для ветеранов — инвалидов! |
At the centre a full information will be given to you, concerning your request and there you will get a help of a qualified specialist. | В центре Вам предоставят полную информацию о курсах, и там же Вы получите помощь компетентного специалиста. |
As if in answer to his request , the air was rent by the most tremendous crash he had ever heard. | И словно в ответ воздух содрогнулся от страшного взрыва. |
I hereby request that you call the U.S. ambassador and alert him to this illegal detention. | Я настоятельно требую, чтобы вы позвонили американскому послу и сообщили ему об этом незаконном задержании. |
Now, I’m going to request permission to question Walter Nunn under caution. | А сейчас я собираюсь просить разрешение допросить Уолтера Нанна с предупреждением о даче ложных показаний. |
The operational concept comes from your people, and the request for cooperation comes from Judge Moore himself. | Замысел операции предложили ваши люди, а просьба о содействии исходит лично от судьи Мура. |
We may also want to request further confirmation that these are indeed the correct locations for the Phormbi bases. | Нам также надо потребовать от мрашанцев подтверждения того, что координаты баз на Формби правильны. |
I have heard this from other heralds in the past, a request for leniency, for mercy. | Я слышала это от других вестников в прошлом, просьбу о снисхождительности, о милосердии. |
I put my request in an absurd, almost insolent form. | Я высказал свое требование в нелепой, почти дерзкой форме. |
You must have known before you came here I was going to refuse your extradition request . | Вы наверняка знали, что я отклоню вашу просьбу об экстрадиции. |
Judge Redding already denied the request for a new bail hearing. | Судья Реддинг уже отклонила запрос на повторное слушание о залоге. |
They must have given you a reason for denying your request . | Они должны были объяснить причины, по которым отклонили ваш запрос. |
I have asked the Chancellor’s office in Norwich to request the Confederation Navy squadron extends its duty tour. | Я уже попросил сотрудников канцлера в Норвиче обратиться с просьбой продлить сроки пребывания эскадры Конфедерации. |
My office will furnish any unclassified information you request , but this facility is not yours to search. | Мой отдел предоставит любую незасекреченную информацию, которую вы затребуете, но данный объект запрещен для осмотра. |
This is a strange request , but did you set up any additional parabolic mics on the northwest corner of the stage? | Вопрос может показаться странным, но ты устанавливал параболические микрофоны в северо — западном углу сцены? |
I believe there’s been a request for discussion Of the Pleasantville road reservoir. | Я надеюсь у вас есть запрос на обсуждение водохранилища Плеазантвильской дороги. |
The chalice was planted on Jacques Cherbourg at the request of Prior James of Kingsbridge. | Потир был подброшен Джеку Шерубуру по приказу настоятеля Кингсбриджа Джеймса. |
At the request of the government we inform the inhabitants of Budapest, that prohibition of alcoholic drinks is still in force. | По просьбе правительства мы сообщаем жителям Будапешта, что запрет на алкогольные напитки остаётся в силе. |
You have every right to refuse my request to help him. | Вы имеете полное право отказать в моей просьбе помочь ему. |
Dax and Bashir were telling me about your request to pilot a runabout. | Дакс и Башир рассказали мне о вашем запросе насчет пилотирования катера. |
Your FBI girlfriend just put in a request for you to retake the detective’s exam as a series of interviews. | Твоя подружка из ФБР подала заявку, чтобы ты пересдал экзамен на детектива в виде собеседований. |
But this request for sale was signed by you, Mrs. Garrison. | Но эти заявки на продажу были подписаны Вами, миссис Гаррисон. |
And I am denying your request that the minor be remanded into the custody of his mother. | Я отклоняю прошение о переводе подсудимого под опеку его матери. |
I wonder if my request could be put forward on today’s agenda. | Я надеюсь вы рассмотрите мое прошение сегодня на повестке дня в совете. |
He’s putting in for a transfer request to Briar Ridge tomorrow. | Он подаёт завтра прошение о переводе в Брейр — Ридж. |
They’ve decided to grant your request for humanitarian release. | Они решили удовлетворить ваше прошение и освободить вас досрочно. |
I don’t want to seem dismissive, and I promise I will consider your request and all of your grievances. | Не хочу казаться пренебрежительным и обещаю, что приму ваше заявление и все ваши претензии. |
I decided not to renew my request , and I do not do so now. | Я решила не возобновлять моих домогательств и не делаю этого сейчас. |
There’s a weekly briefing with my department, and the occasional special request for information. | Только еженедельные брифинги со всем моим департаментом и время от времени специальные информационные запросы. |
The request for a vote postponement came from Alderman Ross’ office, his senior advisor Mona Fredricks. | Запрос об отсрочке голосования прибыл из офиса олдермена Росса, его старшей советницы Моны Фредрикс. |
You can request a continuance if you would like to look for other representation. | Вы можете попросить об отсрочке, если хотите найти себе другого представителя. |
I am here at the request of my government, bearing gifts for both the ambassador and your chief administrator. | Я прибыл по просьбе моего правительства, принес подарки для посла и главного администратора. |
Helen merely left her name and number with a request to be called as soon as possible. | Она просто оставила секретарю номер своего телефона и попросила позвонить ей, как только будет возможность. |
Jennsen was stunned to have her request dismissed so out of hand. | Дженнсен была поражена тем, что ее просьбу отвергают с ходу. |
You have ignored the request of our automated ships and returned to our planetary system. | Вы проигнорировали требование наших кораблей — автоматов и возвратились в нашу планетную систему. |
I am therefore returning it to you and request that you sign it and return to us. | Поэтому возвращаем Вам чек с просьбой подписать его и снова переслать нам. |
At Mrs Crale’s urgent request Miss Williams left the Battery garden and hurried up to the house to telephone for a doctor. | По настоятельной просьбе миссис Крейл мисс Уильямс кинулась в дом, чтобы по телефону вызвать врача. |
Nora sent me a text with a request for Valentine’s Day. | Нора послала мне сообщение с пожеланием на День Валентина. |
I wondered if Kettricken knew that Brawndy would see her request as a veiled command. | Я подумал, понимает ли Кетриккен, что Браунди примет ее вопрос как завуалированный приказ. |
The uplifted thumb, as everyone knows, indicates a request for transportation. | Поднятый большой палец, как известно, обозначает просьбу подвезти. |
Класс Request() модуля flask в Python.
Объект запроса приложения Flask.
Синтаксис:import flask flask.Request(environ, populate_request=True, shallow=False)Параметры:
environ
— среда, созданная сервером WSGI и содержит информацию о конфигурации сервера и запросе клиента.populate_request=True
— добавляет'werkzeug.request'
в среду WSGI (environ['werkzeug.request']
). Полезно при отладке.shallow=False
— заставляет вызватьRuntimeError
при чтение из потока (и любого метода, который будет читать из него). Полезно для предотвращения использования данных формы в промежуточном программном обеспечении, которое сделало бы его недоступным для конечного приложения.
- объект запроса
Request
.
Класс Request()
модуля flask
создает объект запроса при каждом обращении к URL приложения, который, в свою очередь, запоминает совпадающую конечную точку endpoint
и аргументы, передаваемые в функцию-представление.
Класс flask.Request
является подклассом werkzeug.wrappers.Request
и предоставляет все атрибуты, определенные Werkzeug, плюс несколько специфичных для Flask.
Для доступа к данным входящих запросов необходимо использовать глобальный объект запроса flask.request
. Этот объект Flask анализирует данные входящих запросов и предоставляет доступ к ним. Фреймворк Flask гарантирует, что при нахождении в многопоточной среде, для активного потока, всегда поступают правильные данные.
Объект запроса
Request
приложения Flask.Объект запроса Request
— это то, что заканчивается запросом к сайту по определенному URL-адресу. Если необходимо заменить объект запроса, используемый по умолчанию, то можно создать его подкласс и установить app.request_class
для созданного подкласса.
Внимание!!! Объект запроса Request
, в приложении Flask доступен в качестве глобального прокси-объекта flask.request
. Например:
# импортируем прокси-объект `flask.request` from flask import request @app.route('/login', methods=['POST', 'GET']) def login(): error = None # `request.method`: доступ к HTTP-методу if request.method == 'POST': # `request.form`: доступ к полям, # передаваемым в HTML-форме. if valid_login(request.form.get('username'), request.form.get('password')): # если условие if выполнилось успешно, то 'username' # существует и дальше к нему можно обращаться как # к ключу словаря, что на много быстрее. return log_the_user_in(request.form['username']) else: error = 'Неверное имя пользователя или пароль' return render_template('login. html', error=error)
Дополнительно смотрите материал «Извлечение различных данных из запроса в приложении на Flask».
Атрибуты и методы объекта
Request
.Request.accept_charsets
наборов символов, которые поддерживает клиент,Request.accept_encodings
список кодировок клиента,Request.accept_languages
список языков клиента,Request.accept_mimetypes
список типовmimetypes
клиента,Request.access_control_request_headers
заголовки, отправленные с перекрестным запросом,Request.access_control_request_method
HTTP-метод, отправленный с перекрестным запросом,Request.access_route
список всех ip-адресов заголовка'FORWARDED'
,Request.application()
декоратор для функции WSGI,Request.args
словарь с параметрами URL-адреса,Request.authorization
возвращает объектwerkzeug. datastructures.Authorization
,Request.base_url
какRequest.url
, но без строки запроса,Request.blueprint
имя текущей схемыblueprint
,Request.blueprints
имена текущей схемыblueprint
,Request.cache_control
объектwerkzeug.datastructures.RequestCacheControl
,Request.close()
закрывает связанные ресурсы запроса,Request.content_encoding
поле заголовкаContent-Encoding
,Request.content_length
поле заголовкаContent-Length
,Request.content_md5
поля заголовкаContent-MD5
,Request.content_type
поле заголовкаContent-Type
,Request.cookies
словарь всех файловcookie
,Request.data
входящий запрос в виде строки,Request.date
данные общего заголовкаDate
,Request. dict_storage_class
ссылка наwerkzeug.datastructures.ImmutableMultiDict
,Request.endpoint
конечная точка, соответствующая URL-адресу запроса,Request.environ
возвращает словарь переменных среды WSGI сервера,Request.files
возвращаетMultiDict
, содержащий все загруженные файлы,Request.form
возвращает данные HTML-формы,Request.form_data_parser_class
ссылка наwerkzeug.formparser.FormDataParser
,Request.from_values()
создает новый объект запросаRequest
,Request.full_path
URL путь, включая строку запроса,Request.get_data()
читает входящие данные от клиента в однобайтовый объект,Request.get_json()
возвращает распарсенные данные JSON,Request.headers
словарь с заголовками, переданными в запросе,Request.host
возвращает имя хоста,Request. host_url
возвращает только схему URL-адреса и хост,Request.if_match
возвращает распарсенный заголовокIf-Match
,Request.if_modified_since
возвращает распарсенный заголовокIf-Modified-Since
,Request.if_none_match
возвращает распарсенный заголовокIf-None-Match
,Request.if_range
возвращает распарсенный заголовокIf-Range
,Request.if_unmodified_since
возвращает распарсенный заголовокIf-Unmodified-Since
,Request.input_stream
возвращает входной поток WSGI,Request.is_json
проверяет присутствие типаapplication/json
,Request.is_multiprocess
True
, если WSGI порождает несколько процессов,Request.is_multithread
True
, если приложение обслуживает многопоточный WSGI,Request.is_run_once
True
, если приложение выполняться один раз за время процесса,Request. is_secure
True
, если запрос был сделан черезHTTPS
,Request.json
возвращает данные JSON,Request.list_storage_class
ссылка наwerkzeug.datastructures.ImmutableList
,Request.make_form_data_parser()
создает анализатор данных HTML-формы,Request.max_content_length
параметр конфигурацииMAX_CONTENT_LENGTH
,Request.max_forwards
возвращает заголовок запросаMax-Forwards
,Request.method
возвращает HTTP-метод запроса,Request.mimetype
какRequest.content_type
, но без параметров,Request.mimetype_params
возвращает параметрыmimetype
как словарь,Request.on_json_loading_failed()
вызывается, если анализ JSON завершается неудачно,Request.origin
возвращает хост, с которого исходил запрос,Request. parameter_storage_class
ссылка наwerkzeug.datastructures.ImmutableMultiDict
,Request.path
возвращает часть пути URL-адреса послеRequest.root_path
,Request.pragma
возвращает данные общего заголовкаPragma
,Request.query_string
возвращает часть URL-адреса после знака вопроса,Request.range
возвращает значение заголовкаRange
,Request.referrer
возвращает значение заголовкаReferer[sic]
,Request.remote_addr
возвращает ip-адрес клиента,Request.remote_user
имя аутентифицированного пользователя,Request.root_path
возвращает префикс, под которым монтируется приложение,Request.root_url
возвращает схему URL-адреса, хост и корневой путь,Request.routing_exception
возвращает исключение, если не удалось сопоставить URL,Request. scheme
возвращает протокол URL-адреса,Request.script_root
псевдоним дляself.root_path
,Request.server
возвращает адрес сервера(host, port)
,Request.shallow
еслиTrue
, то чтение из тела запроса вызовет исключениеRuntimeException
,Request.stream
данные потокаRequest.stream
без изменений,Request.url
возвращает полный URL-адрес запроса,Request.url_charset
возвращает кодировку, используемую для URL,Request.url_root
ссылка наRequest.root_url
,Request.url_rule
возвращает правило внутреннего URL-адреса,Request.user_agent
возвращает объект с информацией о пользовательском агенте,Request.user_agent_class
ссылка наwerkzeug.useragents._UserAgent
,Request.values
возвращает словарь, который объединяетRequest. args
иRequest.form
,Request.view_args
словарь аргументов, переданных в функцию-представление,Request.want_form_data_parsed
True
, если метод запроса имеет контент.
Request.accept_charsets
:Свойство Request.accept_charsets
представляет собой подкласс списка для списков кортежей наборов символов (value, quality)
, которые этот клиент поддерживает. Представлен в качестве объекта werkzeug.datastructures.CharsetAccept
.
Подкласс списка автоматически сортируется по специфике и качеству quality
.
>>> a = CharsetAccept([('ISO-8859-1', 1), ('utf-8', 0.7)]) >>> a.best # 'ISO-8859-1' >>> 'iso-8859-1' in a # True >>> 'UTF8' in a # True >>> 'utf7' in a # False >>> a['utf-8'] # 0.7 >>> a['utf7'] # 0 # преобразует в строку HTTP-заголовка. a.to_header()
Request. accept_encodings
:Свойство Request.accept_encodings
представляет собой подкласс списка для списков кортежей кодировок (value, quality)
, которые принимает этот клиент. Кодировки в термине HTTP — это кодировки сжатия, такие как gzip
.
Свойство Request.accept_encodings
ведет себя как Request.accept_charsets
Request.accept_languages
:Свойство Request.accept_languages
представляет собой подкласс списка для списков кортежей языков, которые этот клиент принимает в качестве объекта werkzeug.datastructures.LanguageAccept
.
Свойство Request.accept_languages
ведет себя как Request.accept_charsets
Request.accept_mimetypes
:Свойство Request.accept_mimetypes
представляет собой подкласс списка для списков кортежей типов mimetypes
, поддерживаемых этим клиентом в качестве объекта werkzeug. datastructures.MIMEAccept
.
Свойство Request.accept_mimetypes
ведет себя как Request.accept_charsets
Request.access_control_request_headers
:Атрибут Request.access_control_request_headers
отправляет запрос предварительной проверки, для выяснения, какие заголовки будут отправлены с запросом перекрестного происхождения.
Чтобы указать, какие заголовки разрешены необходимо установить в ответ Response.access_control_allow_headers
.
Request.access_control_request_method
:Атрибут Request.access_control_request_method
отправляет запрос предварительной проверки, для выяснения, какой метод будет использоваться для запроса перекрестного происхождения.
Чтобы указать, какие методы разрешены необходимо установить в ответ Response.access_control_allow_methods
.
Request.access_route
:Свойство Request. access_route
представляет собой список всех ip-адресов от ip-адреса клиента до последнего прокси-сервера, если существует заголовок 'FORWARDED'
.
Request.application(f)
:Метод класса Request.application()
используется как декоратор для функции WSGI, которая принимает запрос в качестве последнего аргумента. Это работает как декоратор responder()
, но функция передает объект запроса в качестве последнего аргумента, и объект запроса будет автоматически закрыт:
@Request.application def my_wsgi_app(request): return Response('Hello World!')
Возвращает WSGIApplication
. Начиная с Werkzeug 0.14 Исключения HTTP автоматически перехватываются и преобразуются в ответы вместо сбоя.
Request.args
:Свойство Request.args
возвращает неизменяемый словарь с параметрами проанализированного URL-адреса (часть в URL — адресе после знака вопроса).
По умолчанию из этой функции возвращается значение ImmutableMultiDict
(неизменяемый словарь). Возвращаемый тип можно изменить, установив для параметра Request.parameter_storage_class
другой тип. Изменение типа может потребоваться, если важен порядок данных формы.
Возвращаемый словарь ImmutableMultiDict
имеет метод .get()
, который отличается от dict.get()
одним принимаемым аргументом. Вызвать этот метод можно следующим образом:
request.args.get(key, default=None, type=None)
Подробнее в материале «Извлечение различных данных из запроса в приложении на Flask».
Request.authorization
:Свойство Request.authorization
представляет заголовок авторизации, отправленный клиентом, в виде объекта werkzeug.datastructures.Authorization
в распарсенном виде.
Request.base_url
:Свойство Request.base_url
ведет себя как Request.url
, но без строки запроса.
Request.blueprint
:Свойство Request. blueprint
возвращает зарегистрированное имя текущей схемы blueprint
.
Request.blueprint
не возвратит значение, если конечная точка не является частью схемы blueprint
, или если сопоставление URL-адресов не удалось или еще не было выполнено.
Возвращаемое значение не обязательно совпадает с именем, с которым была создана схема. Возможно, она была вложена или зарегистрирована под другим именем.
Request.blueprints
:Свойство Request.blueprints
возвращает зарегистрированные имена текущей схемы blueprint
вверх к родительским схемам.
Это будет пустой список []
, если нет текущей схемы или если не удалось сопоставить URL-адрес.
Новое в версии 2.0.1.
Request.cache_control
:Свойство Request.cache_control
представляет объект werkzeug.datastructures.RequestCacheControl
, является неизменяемым и предоставляет доступ ко всем заголовкам управления кэшем, относящимся к запросу.
Для получения строкового представления заголовка запроса Cache-Control
, нужно преобразовать объект RequestCacheControl
в строку функцией str()
или вызвать метод RequestCacheControl.to_header()
. Если необходимо его подклассировать и добавить свои собственные элементы, то смотрите исходный код для этого класса.
Request.close()
:Метод Request.close()
закрывает связанные ресурсы этого объекта запроса. Метод явно закрывает все дескрипторы файлов.
Также можно использовать объект запроса в инструкции with
, которая автоматически закроет его.
Request.content_encoding
:Атрибут Request.content_encoding
представляет собой поле заголовка Content-Encoding
, используется как модификатор типа медиа.
Если он присутствует, то его значение указывает, какие дополнительные кодировки контента были применены к телу объекта и, следовательно, какие механизмы декодирования должны быть применены для получения типа медиа, на который ссылается поле заголовка Content-Type
.
Request.content_length
:Свойство Request.content_length
представляет собой поле заголовка Content-Length
, указывает размер тела объекта в байтах или, в случае метода HEAD
, размер тела объекта, которое было бы отправлено, если бы использовался запрос GET
.
Request.content_md5
:Атрибут Request.content_md5
данные поля заголовка Content-MD5
, как определено в RFC 1864, представляет собой дайджест MD5 тела объекта с целью обеспечения сквозной проверки целостности сообщения (MIC) тела объекта.
Примечание: MIC хорош для обнаружения случайной модификации тела объекта при передаче, но не является защитой от злонамеренных атак.
Request.content_type
:Атрибут Request.content_type
представляет собой поле заголовка Content-Type
, указывает тип носителя тела объекта, отправленного получателю, или, в случае метода HEAD
, тип носителя, который был бы отправлен, если бы использовался запрос GET
.
Request.cookies
:Свойство Request.cookies
представляет собой словарь с содержанием всех файлов cookie
, переданных вместе с запросом.
Request.data: bytes
:Свойство Request.data
содержит данные входящего запроса в виде строки на случай, если он пришел с типом mimetype
, который Werkzeug
не обрабатывает.
Request.date
:Атрибут Request.date
это данные поля общего заголовка Date
, представляет дату и время, когда было отправлено сообщение, и имеет ту же семантику, что и исходная дата в RFC 822.
Изменено в версии 2.0: объект datetime.datetime
учитывает часовой пояс.
Request.dict_storage_class
:Атрибут Request.dict_storage_class
ссылка на werkzeug.datastructures.ImmutableMultiDict
.
Request.endpoint
:Свойство Request. endpoint
представляет собой конечную точку, соответствующую URL-адресу запроса.
Это свойство будет возвращать None
, если сопоставление URL-адреса не удалось или еще не было выполнено.
Request.endpoint
в сочетании с Request.view_args
может использоваться для восстановления того же URL-адреса или измененного URL-адреса.
Request.environ
:Атрибут Request.environ
возвращает словарь переменных среды WSGI сервера, которые содержат HTTP-заголовки и информацию с сервера WSGI.
Подробнее в материале «Извлечение различных данных из запроса в приложении на Flask».
Request.files
:Свойство Request.files
возвращает объект MultiDict
, содержащий все загруженные файлы. Каждый ключ в Request.files
— это имя name
из <input type="file" name="">
, а каждое значение, является объектом FileStorage
модуля Werkzeug.
Он ведет себя как стандартный файловый объект, с той лишь разницей, что он также имеет метод .save()
, которая может сохранять файл в файловой системе.
Обратите внимание, что файлы будут содержать данные только в том случае, если метод запроса был POST
, PUT
или PATCH
, а HTML-форма, отправленная в запросе, имела тип enctype="multipart/form-data"
, в противном случае Request.files
будет пустым.
Подробнее в материале «Загрузка файлов на сервер в приложении Flask».
Request.form
:Свойство Request.form
возвращает данные полей переданной HTML-формы в виде атрибутов. По умолчанию это свойство возвращает ImmutableMultiDict
.
Возвращаемый тип можно изменить, задав для параметра Request.parameter_storage_class
другой тип. Изменение типа может быть необходимо, если важен порядок возвращаемых данных в форме.
Подробнее в материале «Извлечение различных данных из запроса в приложении на Flask».
Имейте в виду, что данные загрузки файлов возвращаются не здесь, а в атрибуте Request.files
.
Request.form_data_parser_class
:Атрибут Request.form_data_parser_class
представляет собой ссылку на werkzeug.formparser.FormDataParser
.
Request.from_values(*args, **kwargs)
:Метод класса Request.from_values()
создает новый объект запроса Request
на основе предоставленных значений. Если задана среда environ
, то пропущенные значения заполняются оттуда.
Этот метод полезен для небольших скриптов, когда нужно имитировать запрос с URL-адреса. Не используйте этот метод для модульного тестирования, существует полнофункциональный клиентский объект (Client
), который позволяет создавать составные запросы, поддерживает файлы cookie и т. д.
Метод класса Request.from_values()
принимает те же параметры, что и werkzeug. test.EnvironBuilder
.
Request.full_path
:Свойство Request.full_path
представляет собой запрошенный URL путь, включая строку запроса..
Request.get_data(cache=True, as_text=False, parse_form_data=False)
:Метод Request.get_data()
считывает буферизованные входящие данные от клиента в однобайтовый объект. По умолчанию, входящие данные кэшируется, но это поведение можно изменить, установив для аргумента cache
значение False
.
Обычно вызывать этот метод без предварительной проверки длины содержимого — плохая идея, поскольку клиент может отправить десятки мегабайт или более, чтобы вызвать проблемы с памятью на сервере.
Обратите внимание, что если данные формы уже были проанализированы, то этот метод ничего не вернет, так как синтаксический анализ данных формы не кэшируется, как этот метод. Чтобы неявно вызывать функцию синтаксического анализа данных формы, необходимо установить у аргумента parse_form_data
значение True
. Когда это будет сделано и если синтаксический анализатор формы обрабатывает данные, то возвращаемое значение этого метода будет пустой строкой. Как правило, в этом нет необходимости, поскольку если все данные кэшируются (по умолчанию), синтаксический анализатор формы будет использовать кэшированные данные для анализа данных формы. В любом случае, прежде чем вызывать этот метод, всегда помните о проверке длины содержимого, чтобы избежать падения приложения из за нехватки памяти сервера.
Если аргумент as_text
установлен в True
, то возвращаемое значение будет декодированной строкой.
Request.get_json(force=False, silent=False, cache=True)
:Метод Request.get_json()
возвращает распарсенные/разобранные данные JSON.
Если тип mimetype
не указывает на JSON (application/json
, смотрите Request.is_json()
), то этот метод возвращает значение None
.
Если синтаксический анализ завершается неудачно, то вызывается Request. on_json_loading_failed()
, и его значение используется в качестве возвращаемого значения.
Принимаемые аргументы:
force
: Игнорирует типmimetype
и всегда пытайтесь анализировать JSON.silent
: Отключает возникновение ошибок при синтаксическом анализе, а в случае их возникновения не возвращает никаких данных.cache
(bool) – Кэширует проанализированный JSON для последующих вызовов.
Request.headers
:Атрибут Request.headers
представляет собой словарь с заголовками, полученные вместе с запросом.
Request.host
:Свойство Request.host
возвращает имя хоста, к которому был отправлен запрос, включая порт, если он нестандартный. Проверено с помощью trust_hosts
.
Request.host_url
:Свойство Request.host_url
возвращает только схему URL-адреса и хост.
Request.if_match
:Свойство Request.if_match
возвращает объект werkzeug.datastructures.ETags
, содержащий все теги в заголовке If-Match
. Свойство можно использовать для проверки наличия одного etag
в коллекции etag
.
Request.if_modified_since
:Свойство Request.if_modified_since
возвращает распарсенный заголовок If-Modified-Since
как объект datetime.datetime
.
Изменено в версии 2.0: объект datetime.datetime
учитывает часовой пояс.
Request.if_none_match
:Свойство Request.if_none_match
возвращает объект werkzeug.datastructures.ETags
, содержащий все теги в заголовке If-None-Match
.
Request.if_range
:Свойство Request.if_range
возвращает распарсенный/разобранный заголовок If-Range
как объект werkzeug. datastructures.IfRange
. У него либо не будет ни метки, ни даты, либо будет присутствовать одно из них, но никогда не будет присутствовать и то, и другое вместе.
Имеет атрибуты IfRange.date
, IfRange.etag
и метод строкового представления заголовка IfRange.to_header()
.
Изменено в версии 2.0: werkzeug.datastructures.IfRange.date
учитывает часовой пояс.
Request.if_unmodified_since
:Свойство Request.if_unmodified_since
возвращает распарсенный заголовок If-Unmodified-Since
как объект datetime.datetime
.
Изменено в версии 2.0: объект datetime.datetime
учитывает часовой пояс.
Request.input_stream
:Атрибут Request.input_stream
возвращает входной поток WSGI.
Использовать атрибут Request.input_stream
— плохая идея, т.к. при чтении можно легко выйти за границы. Вместо этого используйте Request. stream
.
Request.is_json
:Свойство Request.is_json
проверяет, что тип mimetype
указывает на данные JSON: application/json
или `application/*+json.
Request.is_multiprocess
:Атрибут Request.is_multiprocess
логическое значение, которое верно, если приложение обслуживается WSGI сервером, если он порождает несколько процессов.
Request.is_multithread
:Атрибут Request.is_multithread
логическое значение, которое верно, если приложение обслуживается многопоточным WSGI сервером.
Request.is_run_once
:Атрибут Request.is_run_once
логическое значение, которое верно, если приложение будет выполняться только один раз за время существования процесса.
Такое поведение относится, например, к CGI, но не гарантируется, что выполнение произойдет только один раз..
Request. is_secure: bool
:Свойство Request.is_secure
возвращает True
, если запрос был сделан с использованием защищенного протокола (HTTPS
или WSS
).
Request.json
:Свойство Request.json
возвращает проанализированные данные JSON, если mimetype
указывает на JSON (application/json
, смотрите Request.is_json
).
Вызывает метод Request.get_json()
с аргументами по умолчанию.
Request.list_storage_class
:Атрибут Request.list_storage_class
представляет собой ссылку на werkzeug.datastructures.ImmutableList
.
Request.make_form_data_parser()
:Метод Request.make_form_data_parser()
создает анализатор данных HTML-формы в виде экземпляра класса Request.form_data_parser_class
с некоторыми параметрами.
Возвращает тип werkzeug. formparser.FormDataParser
.
Request.max_content_length
:Свойство Request.max_content_length
доступно только для чтения, представляет доступ к параметру конфигурации MAX_CONTENT_LENGTH
.
Request.max_forwards
:Атрибут Request.max_forwards
возвращает поле заголовка запроса Max-Forwards
, который предоставляет механизм с методами TRACE
и OPTIONS
для ограничения количества прокси или шлюзов, которые могут пересылать запрос на следующий входящий сервер.
Request.method
:Атрибут Request.method
возвращает HTTP-метод, с помощью которого был сделан запрос, например GET
.
Request.mimetype
:Свойство Request.mimetype
ведет себя как Request.content_type
, но без параметров (например, без кодировки, типа и т.д.) и всегда возвращает значение в нижнем регистре.
Например, если тип содержимого text/HTML; charset=utf-8
, то Request.mimetype
будет 'текст/html'
.
Request.mimetype_params
:Свойство Request.mimetype_params
возвращает параметры mimetype
как словарь dict
.
Например, если тип содержимого text/HTML; charset=utf-8
, то Request.mimetype_params
возвратит: {'charset': 'utf-8'}
.
Request.on_json_loading_failed(e)
:Метод Request.on_json_loading_failed()
вызывается, если синтаксический анализ Request.get_json()
завершается неудачно и не отключается. Если этот метод возвращает значение, которое используется как возвращаемое значение для .get_json()
.
Реализация по умолчанию вызывает BadRequest
.
Request.origin
:Атрибут Request.origin
возвращает хост, с которого исходил запрос.
Для указания разрешенных источников запроса необходимо установить в ответ сервера Response.access_control_allow_origin
разрешенные источники.
Request.parameter_storage_class
:Атрибут Request.parameter_storage_class
представляет собой ссылку на werkzeug.datastructures.ImmutableMultiDict
.
Request.path
:Атрибут Request.path
возвращает часть пути URL-адреса после Request.root_path
. Это путь, используемый для маршрутизации в приложении.
Request.pragma
:Свойство Request.pragma
это данные поля общего заголовка Pragma
, используется для включения директив, зависящих от реализации, которые могут применяться к любому получателю в цепочке запрос/ответ. Все директивы pragma
определяют необязательное поведение с точки зрения протокола; однако некоторые системы МОГУТ требовать, чтобы поведение соответствовало директивам.
Возвращает тип werkzeug.datastructures.HeaderSet
. Ведет себя подобно множеству set
Python:
>>> resp.pragma(['foo', 'bar']) # добавит значение заголовка >>> resp.pragma.add('baz']) >>> resp.pragma # HeaderSet(['foo', 'bar', 'baz']) # удалит значение заголовка >>> resp.pragma.discard('foo') # преобразует в строку HTTP-заголовка. >>> resp.pragma.to_header() # очистит заголовок. >>> resp.pragma.clear()
Request.query_string
:Атрибут Request.query_string
возвращает часть URL-адреса после знака вопроса '?'
. Это исходная строка параметров запроса, используйте Request.args
для извлечения проанализированных значений.
Request.range
:Свойство Request.range
возвращает проанализированное значение заголовка Range
в виде объекта werkzeug.datastructures.Range
. Все методы поддерживают только bytes
в качестве единицы измерения. Сохраняет список диапазонов, если он задан, но методы работают только в том случае, если указан только один диапазон.
Request.referrer
:Атрибут Request.referrer
возвращает данные поля заголовка запроса Referer[sic]
, позволяет клиенту указать адрес (URI) ресурса, из которого был получен запрос ('referrer'
, хотя поле заголовка написано с ошибкой).
Request.remote_addr
:Атрибут Request.remote_addr
возвращает ip-адрес клиента, отправляющего запрос.
Request.remote_user
:Атрибут Request.remote_user
содержит имя пользователя, под которым пользователь прошел аутентификацию, если сервер поддерживает аутентификацию пользователя и сценарий защищен.
Request.root_path
:Атрибут Request.root_path
возвращает префикс, под которым монтируется приложение, без завершающей косой черты. после этого значения начинается Request.path
.
Request.root_url
:Свойство Request.root_url
возвращает схему URL-адреса, хост и корневой путь. Это корень, из которого осуществляется доступ к приложению.
Request.routing_exception
:Атрибут Request.routing_exception
возвращает исключение, которое будет вызвано или было вызвано как часть обработки запроса, если сопоставление URL-адреса не удалось. Обычно это исключение NotFound
или что-то подобное.
Request.scheme
:Атрибут Request.scheme
возвращает протокол URL-адреса, используемого запросом, например https
или wss
.
Request.script_root
:Свойство Request.script_root
представляет собой псевдоним для self.root_path
. Environment ['SCRIPT_ROOT']
без косой черты в конце.
Request. server
:Атрибут Request.server
возвращает адрес сервера. Для unix-сокетов (host, port), (path, None)
или None
, если неизвестно.
Request.shallow
:Атрибут Request.shallow
устанавливается при создании объекта запроса. Если True
, то чтение из тела запроса вызовет исключение RuntimeException
. Полезно для предотвращения изменения потока промежуточным программным обеспечением.
Request.stream
:Если входящие данные формы не были закодированы с использованием известного типа mime
, то данные сохраняются в потоке Request.stream
без изменений и имеет тип байтовой строки bytes
. В большинстве случаев лучше использовать данные в виде строки Request.data
.
Поток Request.stream
возвращает данные только один раз.
В отличие от Request.input_stream
, этот поток должным образом защищен от случайного чтения большей длины. Werkzeug
всегда будет внутренне обращаться к этому потоку для чтения данных, что позволяет обернуть этот объект потоком, выполняющим фильтрацию.
Request.url
:Свойство Request.url
возвращает полный URL-адрес запроса со схемой, хостом, корневым путем, путем и строкой запроса.
Подробнее в материале «Извлечение различных данных из запроса в приложении на Flask».
Request.url_charset
:Свойство Request.url_charset
возвращает кодировку, используемую для URL-адресов.
Request.url_root
:Свойство Request.url_root
представляет собой ссылку на Request.root_url
, URL-адрес со схемой, хостом и корневым путем. Например, https://example.com/app/
.
Request.url_rule
:Атрибут Request.url_rule
возвращает правило внутреннего URL-адреса, соответствующее запросу.
Атрибут может быть полезен для проверки того, какие методы разрешены для URL-адреса из обработчика до/после (request. url_rule.methods
) и т. д. Хотя, если HTTP-метод запроса был недопустимым для правила URL-адреса, то действительный список доступен в routing_exception.valid_methods
(атрибут исключения Werkzeug MethodNotAllowed
), потому что запрос никогда не был внутренне привязан.
Request.user_agent
:Свойство Request.user_agent
возвращает объект с информацией о пользовательском агенте. Чтобы получить значение заголовка необходимо использовать Request.user_agent.string
.
Чтобы обеспечить синтаксический анализ свойств пользовательского агента, нужно создать подкласс werkzeug.user_agent.UserAgent
, который будет анализировать строку Request.user_agent.string
и установить его в Request.user_agent_class
.
Изменено в версии 2.0: встроенный синтаксический анализатор устарел и будет удален в Werkzeug 2.1. Подкласс UserAgent
должен быть настроен на анализ данных из строки Request. user_agent.string
.
Request.user_agent_class
:Атрибут Request.user_agent_class
представляет собой ссылку на werkzeug.useragents._UserAgent
.
Request.values
:Свойство Request.values
возвращает словарь, который сочетает/объединяет в себе данные Request.args
и Request.form
.
Для GET-запросов в Request.values
присутствуют только данные из Request.args
.
Изменено в версии 2.0: Для запросов GET присутствуют только Request.args
.
Request.view_args
:Атрибут Request.view_args
словарь аргументов функции-представления, соответствующих запросу. Если при сопоставлении произошло исключение, то возвращаемое значение будет None
.
Request.want_form_data_parsed: bool
:Свойство Request.want_form_data_parsed
возвращает True
, если метод запроса имеет контент.
Если отправляется заголовок Content-Type
, то по умолчанию возвращается True
.
Определение и значение запроса — Merriam-Webster
1 из 2
запрос ри-квест
1
: акт или случай просьбы о чем-либо
предоставлена ее запрос
3
: Условие или факт, когда его запрошен
Доступно по запросу
4
: СТАТИТЕЛЬНО0003
2 из 2
переходный глагол
1
: сделать запрос к или
попросил ее написать статью
2
: попросить в качестве услуги или привилегии
просьбы об освобождении
3
устарело : попросить (человека) прийти или пойти к чему-либо или месту
4
: попросить
запросил короткую отсрочку
Синонимы
Существительное
- позвони
- запрос
- запрос
- вопрос
Глагол
- спросить (для)
- заказ
- вставить (для)
- заявка
Просмотреть все синонимы и антонимы в тезаурусе
Примеры предложений
Существительное Они сделали запрос , чтобы начать работу немедленно. Она подала официальный запрос для получения дополнительной информации. По вашему запросу прилагаю полный возврат вашего платежа. Войска были отправлены по просьбе наших союзников. Эта следующая песня — запрос от одного из наших слушателей. Глагол Губернатор будет запрос , чтобы законодательный орган повысил налоги. Джентльмены попросили надеть пиджак и галстук. Узнать больше
Последние примеры в Интернете
С запросом на 773 миллиарда долларов на следующий год число PPI будет означать, что предположения Пентагона ошибочны примерно на 70 миллиардов долларов, согласно нашей математике. Джон Феррари, WSJ , 5 сентября 2022 г. На прошлой неделе Кэннон провела слушание по запросу Трампа о специальном мастере, но отказалась выносить решение скамьи. Мелисса Куинн, 9 лет0103 CBS News , 5 сентября 2022 г. Сетевой оператор попросил калифорнийцев сократить потребление электроэнергии с 16:00 до 21:00. Воскресенье — запрос , известный как Flex Alert — и с 16:00 до 22:00. Понедельник. Кейт Гэлбрейт, San Francisco Chronicle , 4 сентября 2022 г. Цепь еды из закусочных не немедленно отвечает к вечеру субботы запроса для комментария. Деннис Ромеро, 9 лет0103 Новости NBC , 4 сентября 2022 г. По словам Вайнайны, Хайтман не ответила на запрос братьев о передаче ее вещей в их доме. Вера Карими, CNN , 4 сентября 2022 г. Материнская компания Instagram, Meta, не сразу ответила на запрос о комментариях в субботу. Служба новостей Tribune, oregonlive , 3 сентября 2022 г. В рамках этого запроса администрация также запрашивает 1,4 миллиарда долларов для удовлетворения неудовлетворенных потребностей в аварийном восстановлении в нескольких штатах, в том числе в связи с недавними разрушительными наводнениями в Кентукки. Арканзас Онлайн , 3 сентября 2022 г. К пресс-конференции «Медведей» в конце сезона в январе Маккаски удовлетворил запрос Филлипса . Дэн Видерер, 9 лет0103 Чикаго Трибьюн , 3 сентября 2022 г.
И поскольку телефон и Интернет (питание от солнечной энергии) нестабильны, многие предприятия требуют оплаты наличными. Кеннет Р. Розен, 9 лет0103 Washington Post , 26 августа 2022 г. Организаторы просят гостей припарковаться в парке, а не у близлежащих предприятий. The Courier-Journal , 24 августа 2022 г. В 2021 году официальные лица Сан-Франциско запрашивают дополнительных средств для поддержки своего полицейского управления, поскольку город потрясен всплеском убийств и наглых краж в магазинах. Луи Касиано, 9 лет0103 Fox News , 23 августа 2022 г. Письма запрашивают информацию о том, как компании реагируют на угрозы насилия, в том числе о том, сколько угроз в отношении правоохранительных органов было устранено и о чем было сообщено властям. Кэт Закржевски, Anchorage Daily News , 19 августа 2022 г. Среди множества других ходатайств, поданных на этой неделе: запрос прокуратуры запретить защите вызывать кого-либо для дачи показаний о низком IQ Келли. Джейсон Мейснер, Chicago Tribune , 10 августа 2022 г. Иногда мошенники запрашивают личную информацию, например копию ваших водительских прав. Сьюзан Томпор, Detroit Free Press , 9 августа 2022 г. Наконец, если ваш врач прописывает опиоидные болеутоляющие средства, спросите, есть ли какие-либо ненаркотические альтернативы, и, если они назначены, запрос о том, что любые пополнения требуют авторизации. Дана Сантас, CNN , 7 июля 2022 г. Многие из этих налогоплательщиков также запрашивают возмещение любых налогов, удержанных работодателем. Эмбер Грей-Феннер, Forbes , 1 июля 2022 г. Узнать больше
Эти примеры предложений автоматически выбираются из различных онлайн-источников новостей, чтобы отразить текущее использование слова «запрос». Мнения, выраженные в примерах, не отражают точку зрения Merriam-Webster или ее редакторов. Отправьте нам отзыв.
История слов
Этимология
Существительное
Среднеанглийский requeste , из англо-французского, из вульгарной латыни *Requaesta , от Feminine Requaestus , прошлое причастие Requareerere , требующую
Первое известное использование
Существительное
14 -й век, в смысле, определяемый в смысле 1
Verb
153333333 годы, в смысле 1
Verb
153333333. определено в смысле 1
Путешественник во времени
Первое известное использование запроса было в 14 веке
Посмотреть другие слова из того же века требовать королевы
запрос
проситель
Посмотреть другие записи поблизости
Процитировать эту запись «Запрос.»
Словарь Merriam-Webster.com , Merriam-Webster, https://www.merriam-webster.com/dictionary/request. По состоянию на 14 сентября 2022 г.Копировать цитату
Детское определение
1 из 2
запрос ри-квест
1
: акт просьбы о чем-то
2
: что-то попросил
Он удовлетворил мой запрос .
3
: условие запроса
Билеты доступны по запросу .
запрос
2 из 2
1
: спросить что-то у кого-то
Он попросил их спеть.
2
: по запросу
Я прошу кредит.
Больше от Merriam-Webster по запросу
Нглиш: Перевод запроса для говорящих на испанском языке
Britannica English: Перевод запроса для говорящих на арабском языке
Последнее обновление: 7 сентября 2023 г. 9000s Словарь 900s Америки и получите тысячи других определений и расширенный поиск без рекламы!
Merriam-Webster без сокращений
Запрос Определение и значение | Dictionary.
com- Основные определения
- Синонимы
- Викторина
- Сопутствующее содержимое
- Примеры
- Британские
- Идиомы и фразы
Показывает уровень сложности слова.
[ ri-kwest ]
/ rɪˈkwɛst /
Сохранить это слово!
См. синонимы для: запрос / запрос / запрос / запросы на Thesaurus.com
Показывает уровень оценки в зависимости от сложности слова.
существительное
акт просьбы о чем-либо, особенно в качестве услуги или знака внимания; ходатайство или ходатайство: По его просьбе уехали.
пример этого: Было много запросов на продукт.
письменное заявление о петиции: Если вам нужны расходные материалы, отправьте запрос.
что-то просили: получить просьбу.
состояние запроса; требование.
глагол (используется с дополнением)
просить, особенно вежливо или официально: Он просил разрешения говорить.
просить или просить; ставка (обычно за которой следует предложение или инфинитив): попросить его уйти; просить об освобождении.
просить или умолять (кого-то) что-то сделать: Он попросил меня уйти.
ДРУГИЕ СЛОВА ЗАПРОС
1 мольба, просьба, молитва.
6 петиция, просьба.
8 умолять, умолять.
См. синонимы для запроса на Thesaurus.com
ВИКТОРИНА
Сыграем ли мы «ДОЛЖЕН» ПРОТИВ. «ДОЛЖЕН» ВЫЗОВ?
Следует ли вам пройти этот тест на «должен» или «должен»? Это должно оказаться быстрым вызовом!
Вопрос 1 из 6
Какая форма используется для указания обязательства или обязанности кого-либо?
Идиомы о запросе
по запросу, в ответ или присоединение к запросу: Оркестр играл номера по запросу.
Происхождение запроса
13:00–50; Среднеанглийское requeste (существительное) <Старофранцузский <Вульгарная латынь *requaesita вещи, о которых просят, существительное, использующее причастие прошедшего времени среднего рода во множественном числе от *requaerere, чтобы искать, для латинского requīrere. См. require, квест
изучение синонимов для запроса
7. См. beg 1 .
ДРУГИЕ СЛОВА ИЗ запроса
запросчик, существительноепре·запрос, существительное, глагол (используется с объектом)незапрошенный, прилагательноеСлова рядом запрос
репутация, репутация, известная, по общему мнению, запрос, просьба, просьба остановиться, Реквием, реквием акула, requiescat, requiescat в темпе
Dictionary.com Unabridged Основано на словаре Random House Unabridged Dictionary, © Random House, Inc., 2022 г.
Слова, относящиеся к запросу
апелляция, заявление, звонок, требование, желание, запрос, приглашение, предложение, иск, заявление, призыв, петиция, поиск, вымогательство, иск, просьба, попрошайничество, коммерция, мольба, молитва
Как использовать запрос в предложении
Я всегда помнил просьбу моего отца, чтобы я стоял для гимна.
У Марка Кьюбана была правильная идея: пришло время переосмыслить то, как мы используем национальный гимн|Джон Файнштейн|12 февраля 2021 г.|Washington Post
Адвокаты Стрикленда не ответили на запросы о комментариях от Associated Press, которое сначала сообщило, что иск был прекращен.
Президент «Рэпторс» и заместитель шерифа прекратили судебные иски из-за инцидента с толканием в финале НБА|Синди Борен|12 февраля 2021 г.|Washington Post
Адвокат Келлера не ответил на запрос о комментариях в среду вечером.
Большое жюри усиливает обвинения против олимпийца Клете Келлер в связи с бунтом в Капитолии|Рик Мейс|11 февраля 2021 г.|Washington Post
Чиновники FEMA не ответили на запрос о комментариях в среду.
Лидеры региона Вашингтон просят FEMA о помощи в вакцинации федеральных служащих|Джули Заузмер, Рэйчел Чейсон, Ребекка Тан|11 февраля 2021 г.|Washington Post
В июле прошлого года Жилищная комиссия выпустила еще один запрос предложений.
Исследование налога на вакансию дает городским чиновникам дежа вю|Лиза Халверштадт и Эндрю Киттс|10 февраля 2021 г.|Голос Сан-Диего
К тому времени он, несомненно, уже слышал, что некоторые полицейские проигнорировали его просьбу и отвернулись.
Протест в связи с похоронами – это слишком много для профсоюзного босса полиции Нью-Йорка|Майкл Дейли|5 января 2015|DAILY BEAST
Что бы ни случилось, это настигло их обоих в течение минуты или около того после запроса на изменение высоты, и больше о них ничего не было слышно.
Рейс 8501 ставит вопрос: слишком ли автоматизированы современные самолеты, чтобы летать?|Клайв Ирвинг|4 января 2015 г.|DAILY BEAST
Nickelodeon не ответил на запрос о комментариях к этой истории.
Да, Корра и Асами вошли в портал духов и, вероятно, поцеловались|Мелисса Леон|25 декабря 2014|DAILY BEAST
Обычная процедура заключается в том, что любая страна-член может запросить распространение документа, и ООН делает это проформа.
Эксклюзив: электронные письма Sony говорят, что руководитель студии выбрал Ким Чен Ына в качестве злодея «Интервью»|Уильям Бут|19 декабря 2014 г.|DAILY BEAST
Тиг не ответил на запрос InsideClimate News о комментарии.
Два техасских регулятора пытались обеспечить соблюдение правил. Они были уволены.|Дэвид Хасемиер, InsideClimate News|9 декабря 2014|DAILY BEAST
Прежде чем преступник успевает выполнить эту небольшую просьбу, снова звучит гудок.
Физиология оперы|Джон Х. Сваби (он же «Scrici»)
Память о нем не уйдет, и его имя будет востребовано из поколения в поколение.
Библия, версия Дуэ-Реймса|Разное
Думая, что это просьба о работе, которую он не может предложить, Малкольм небрежно сунул ее в карман.
Красный год|Луи Трейси
Самый простой знакомый сказал бы на такую просьбу что-то более решительное, чем «Спасибо, до свидания».
Пробуждение и Избранные рассказы|Кейт Шопен
Я был смуглым человеком на вечеринке и, как «первый нижний колонтитул», пользовался большим спросом.
Пятьдесят лет железнодорожной жизни в Англии, Шотландии и Ирландии | Джозеф Татлоу
Определения Британского словаря для request
request
/ (rɪˈkwɛst) /
для выражения желания 0, 02002 0, 0, tr желание 0, 0tr) вежливо; попросить или потребоватьзапросить бутылку вина
сущ.
- акт или экземпляр запроса, особенно в форме письменного заявления; ходатайство или ходатайство о песне
- (как модификатор)программа запроса
по запросу в соответствии с конкретным спросом или желанием (кого-либо)
по запросу в соответствии с чьим-либо желанием
по запросу по запросу; популярныйон пользуется спросом в концертных залах по всему миру
по запросу по запросу или по запросуформы заявлений предоставляются по запросу
Производные формы запроса
запрашивающий, существительноеПроисхождение слова для запроса
C14: от старофранцузского requeste, от вульгарного латинского requaerere (незасвидетельствовано) искать; см. требование, квест
Collins English Dictionary — Complete & Unabridged 2012 Digital Edition © William Collins Sons & Co. Ltd., 1979, 1986 © HarperCollins Издательства 1998, 2000, 2003, 2005, 2006, 2007, 2009, 2012
Другие идиомы и фразы по запросу
запрос
посмотреть по чьему-то запросу; по запросу; по требованию.
Словарь идиом американского наследия® Авторское право © 2002, 2001, 1995, издательство Houghton Mifflin Harcourt Publishing Company. Опубликовано издательством Houghton Mifflin Harcourt Publishing Company.
HTTP-запросов | Codecademy
Предыстория:
Эта страница создана с помощью сети HTML, CSS и Javascript, отправленной вам Codecademy через Интернет. Интернет состоит из множества ресурсов, размещенных на разных серверах. Термин «ресурс» относится к любому объекту в Интернете, включая файлы HTML, таблицы стилей, изображения, видео и сценарии. Чтобы получить доступ к контенту в Интернете, ваш браузер должен запрашивать у этих серверов необходимые ему ресурсы, а затем отображать эти ресурсы для вас. Этот протокол запросов и ответов позволяет просматривать эта страница в вашем браузере.
В этой статье основное внимание уделяется одной фундаментальной части функционирования Интернета: HTTP.
Что такое HTTP?
HTTP означает протокол передачи гипертекста и используется для структурирования запросов и ответов через Интернет. HTTP требует передачи данных из одной точки в другую по сети.
Передача ресурсов происходит с использованием TCP (протокола управления передачей). При просмотре этой веб-страницы TCP управляет каналами между вашим браузером и сервером (в данном случае codecademy.com). TCP используется для управления многими типами интернет-соединений, в которых один компьютер или устройство хочет отправить что-то другому. HTTP — это командный язык, которому должны следовать устройства по обе стороны соединения для связи.
HTTP и TCP: как это работает
Когда вы вводите адрес, такой как www.codecademy.com, в свой браузер, вы даете ему команду открыть TCP-канал к серверу, который отвечает на этот URL-адрес (или унифицированный указатель ресурсов, о которых вы можете прочитать больше в Википедии). URL-адрес подобен вашему домашнему адресу или номеру телефона, потому что он описывает, как с вами связаться.
В этой ситуации ваш компьютер, который делает запрос, называется клиентом. URL-адрес, который вы запрашиваете, является адресом, принадлежащим серверу.
После установления TCP-соединения клиент отправляет HTTP-запрос GET на сервер для получения веб-страницы, которую он должен отображать. После того, как сервер отправил ответ, он закрывает TCP-соединение. Если вы снова открываете веб-сайт в своем браузере или если ваш браузер автоматически запрашивает что-то с сервера, открывается новое соединение, которое следует тому же процессу, который описан выше. Запросы GET — это один из видов HTTP-метода, который может вызвать клиент. Вы можете узнать больше о других распространенных ( POST , PUT и DELETE ) в этой статье.
Давайте рассмотрим пример того, как запросы GET (наиболее распространенный тип запросов) используются, чтобы помочь вашему компьютеру (клиенту) получить доступ к ресурсам в Интернете.
Предположим, вы хотите ознакомиться с последними предложениями курсов на сайте http://codecademy.com. После того, как вы введете URL-адрес в свой браузер, ваш браузер извлечет часть http
и распознает, что это имя используемого сетевого протокола. Затем он берет доменное имя из URL-адреса, в данном случае «codecademy.com», и запрашивает у сервера доменных имен в Интернете возврат адреса интернет-протокола (IP).
Теперь клиент знает IP-адрес получателя. Затем он открывает соединение с сервером по этому адресу, используя указанный протокол http
. Он инициирует запрос GET на сервер, который содержит IP-адрес хоста и, возможно, полезные данные. Запрос GET содержит следующий текст:
GET / HTTP/1.1. Хост: www.codecademy.com
Указывает тип запроса, путь на www.codecademy.com (в данном случае «/») и протокол «HTTP/1.1». HTTP/1.1 — это версия первого HTTP, который теперь называется HTTP/1.0. В HTTP/1.0 для каждого запроса ресурсов требуется отдельное подключение к серверу. HTTP/1.1 использует одно соединение более одного раза, поэтому дополнительный контент (например, изображения или таблицы стилей) извлекается даже после извлечения страницы. В результате запросы, использующие HTTP/1.1, имеют меньшую задержку, чем запросы, использующие HTTP/1.0.
Вторая строка запроса содержит адрес сервера "www.codecademy.com"
. Также могут быть дополнительные строки в зависимости от того, какие данные ваш браузер выбирает для отправки.
Если сервер может найти запрошенный путь, сервер может ответить заголовком:
HTTP/1.1 200 OK Content-Type: text/html
За этим заголовком следует запрошенный контент, который в данном случае является информацией, необходимой для отображения www.codecademy.com.
Первая строка заголовка, HTTP/1.1 200 OK
, является подтверждением того, что сервер понимает протокол, с которым клиент хочет взаимодействовать ( HTTP/1.1
), и кодом состояния HTTP, указывающим, что ресурс был нашел на сервере. Вторая строка, Content-Type: text/html
, показывает тип содержимого, которое будет отправлено клиенту.
Если сервер не может найти путь, запрошенный клиентом, он ответит с заголовком:
HTTP/1.1 404 NOT FOUND
В этом случае сервер определяет, что он понимает протокол HTTP, но код состояния 404 NOT FOUND
означает, что конкретный запрошенный фрагмент контента не найден. Это может произойти, если содержимое было перемещено, или если вы неправильно ввели URL-адрес, или если страница была удалена. Подробнее о коде состояния 404, обычно называемом ошибкой 404, можно прочитать здесь.
Аналогия:
Понять, как работает HTTP, может быть сложно, потому что трудно понять, что на самом деле делает ваш браузер. (И, возможно, также потому, что мы объяснили это с помощью сокращений, которые могут быть для вас новыми.) Давайте повторим то, что мы узнали, используя аналогию, которая может быть вам более знакома.
Представьте, что Интернет — это город. Вы клиент, и ваш адрес определяет, где с вами можно связаться. Компании в городе, такие как Codecademy.com, обслуживают запросы, которые им отправляются. Другие дома заполнены другими клиентами, такими как вы, которые делают запросы и ожидают ответов от этих предприятий в городе. В этом городе также есть сумасшедшая быстрая почтовая служба, армия сотрудников службы доставки почты, которые могут путешествовать на поездах, движущихся со скоростью света.
Предположим, вы хотите прочитать утреннюю газету. Чтобы получить его, вы записываете то, что вам нужно, на языке, называемом HTTP, и просите своего местного агента по доставке почты получить это от конкретного предприятия. Сотрудник по доставке почты соглашается и почти мгновенно строит железнодорожную ветку (связь) между вашим домом и предприятием и едет в вагоне поезда с надписью «TCP» по указанному вами адресу предприятия.
Прибыв на предприятие, она спрашивает первого из нескольких свободных сотрудников, готовых выполнить просьбу. Сотрудник ищет запрошенную вами страницу газеты, но не может ее найти и сообщает об этом доставщику почты.
Доставщик почты возвращается на легком скоростном поезде, разрывая пути на обратном пути, и сообщает вам, что возникла проблема «404 Not Found». После проверки правописания того, что вы написали, вы понимаете, что ошиблись в названии газеты. Вы исправляете его и предоставляете исправленное название курьеру.
На этот раз доставщик почты может забрать его из компании. Теперь вы можете спокойно читать свою газету, пока не решите, что хотите прочитать следующую страницу, после чего вы должны сделать еще один запрос и передать его курьеру.
Что такое HTTPS?
Поскольку ваш HTTP-запрос может быть прочитан кем угодно при определенных сетевых соединениях, может быть нецелесообразно доставлять такую информацию, как ваша кредитная карта или пароль, с использованием этого протокола. К счастью, многие серверы поддерживают протокол HTTPS, сокращение от HTTP Secure, что позволяет шифровать данные, которые вы отправляете и получаете. Подробнее о HTTPS можно прочитать в Википедии.
Важно использовать HTTPS при передаче конфиденциальной или личной информации на веб-сайты и с них. Тем не менее, предприятия, обслуживающие серверы, должны его настроить. Для поддержки HTTPS компания должна подать заявку на получение сертификата в центре сертификации.
Узнать больше на Codecademy
Только для Proпуть навыков
Создание внешнего приложения с помощью React
Средний уровень,
25 Уроки обучения
Средний курс
JavaScript
667
Средний уровень,
6 Уроки
Обработка входящих или входящих вызовов HTTPS — Azure Logic Apps
Обратная связь Редактировать
Твиттер LinkedIn Фейсбук Эл. адрес
- Статья
- 14 минут на чтение
Чтобы запустить рабочий процесс приложения логики после получения HTTPS-запроса от другой службы, вы можете запустить рабочий процесс с помощью встроенного триггера запроса. Затем ваш рабочий процесс может ответить на HTTPS-запрос с помощью встроенного действия Response.
В следующем списке описаны некоторые примеры задач, которые может выполнять ваш рабочий процесс при использовании триггера запроса и действия ответа:
Получение и ответ на HTTPS-запрос данных в локальной базе данных.
Получение запроса HTTPS от другого рабочего процесса приложения логики и ответ на него.
Запуск рабочего процесса при возникновении события внешнего веб-перехватчика.
Чтобы запустить рабочий процесс путем отправки исходящего или исходящего запроса, используйте встроенный триггер HTTP или встроенное действие HTTP.
Предварительные условия
Учетная запись Azure и подписка. Если у вас нет подписки, вы можете зарегистрировать бесплатную учетную запись Azure.
Рабочий процесс приложения логики, в котором вы хотите получать входящий HTTPS-запрос. Чтобы запустить рабочий процесс с помощью триггера запроса, вы должны начать с пустого рабочего процесса. Чтобы использовать действие «Ответ», ваш рабочий процесс должен начинаться с триггера «Запрос».
Если вы не знакомы с Azure Logic Apps, ознакомьтесь со следующей документацией по началу работы:
Что такое Azure Logic Apps
Краткое руководство: создание рабочего процесса приложения логики потребления в мультитенантных Azure Logic Apps
Создание рабочего процесса стандартного приложения логики в Azure Logic Apps с одним клиентом
Добавить триггер запроса
Триггер запроса создает вызываемую вручную конечную точку, которая может обрабатывать только входящие запросы по HTTPS. Когда вызывающая служба отправляет запрос на эту конечную точку, срабатывает триггер запроса и запускается рабочий процесс приложения логики. Сведения о том, как вызвать этот триггер, см. в разделе Вызов, триггер или вложение рабочих процессов с конечными точками HTTPS в Azure Logic Apps.
- Потребление
- Стандарт
На портале Azure откройте пустой рабочий процесс приложения логики в конструкторе.
В конструкторе под полем поиска выберите Встроенный . В поле поиска введите HTTP-запрос . В списке триггеров выберите триггер с именем Когда получен HTTP-запрос .
В конструкторе появляется информационное окно триггера HTTP-запроса.
В поле информации о триггере укажите следующие значения, если это необходимо:
Наименование объекта Имя свойства JSON Обязательно Описание HTTP POST URL {нет} Да URL-адрес конечной точки, созданный после сохранения вашего рабочего процесса и используемый для отправки запроса, запускающего ваш рабочий процесс. Схема тела запроса JSON схема
№ Схема JSON, описывающая свойства и значения в теле входящего запроса. Дизайнер использует эту схему для создания токенов для свойств в запросе. Таким образом, ваш рабочий процесс может анализировать, потреблять и передавать выходные данные триггера запроса в ваш рабочий процесс. Если у вас нет схемы JSON, вы можете сгенерировать схему из образца полезной нагрузки с помощью Используйте образец полезной нагрузки для создания возможности схемы .
В следующем примере показан образец схемы JSON:
В следующем примере показан полный образец схемы JSON:
{ "тип": "объект", "характеристики": { "учетная запись": { "тип": "объект", "характеристики": { "имя": { "тип": "строка" }, "Я БЫ": { "тип": "строка" }, "адрес": { "тип": "объект", "характеристики": { "количество": { "тип": "строка" }, "улица": { "тип": "строка" }, "город": { "тип": "строка" }, "государство": { "тип": "строка" }, "страна": { "тип": "строка" }, "Почтовый Код": { "тип": "строка" } } } } } } }
Когда вы вводите схему JSON, дизайнер показывает напоминание о необходимости включить в запрос заголовок Content-Type и установить для этого заголовка значение application/json . Дополнительные сведения см. в разделе Обработка типов контента.
В следующем примере показано, как заголовок Content-Type отображается в формате JSON:
{ "Тип контента": "приложение/json" }
Чтобы создать схему JSON на основе ожидаемой полезной нагрузки (данных), можно использовать такой инструмент, как JSONSchema.net, или выполнить следующие действия:
В триггере запроса выберите Использовать образец полезной нагрузки для создания схемы .
Введите пример полезной нагрузки и выберите Готово .
В следующем примере показан образец полезной нагрузки:
{ "учетная запись": { "имя": "Контосо", "ID": "12345", "адрес": { "номер": "1234", "улица": "Улица где угодно", "город": "Любой город", "состояние": "любое состояние", "страна": "США", "почтовый индекс": "11111" } } }
Чтобы убедиться, что тело запроса входящего вызова соответствует указанной схеме, выполните следующие действия:
Чтобы входящее сообщение имело точно такие же поля, которые описаны в вашей схеме, добавьте в схему свойство
required
и укажите обязательные поля. Добавьте свойствоaddtionalProperties
и задайте для него значениеfalse
.Например, следующая схема указывает, что входящее сообщение должно иметь
msg
поле и никакие другие поля:{ "характеристики": { "сообщение": { "тип": "строка" } }, "тип": "объект", "требуется": ["msg"], "дополнительные свойства": ложь }
В строке заголовка триггера запроса нажмите кнопку с многоточием ( … ).
В настройках триггера включите Проверка схемы и выберите Готово .
Если тело запроса входящего вызова не соответствует вашей схеме, триггер возвращает Ошибка HTTP 400 Bad Request .
Чтобы добавить в триггер другие свойства или параметры, откройте список Добавить новый параметр и выберите параметры, которые хотите добавить.
Наименование объекта Имя свойства JSON Обязательно Описание Метод метод
№ Метод, который должен использовать входящий запрос для вызова приложения логики Относительный путь относительный путь
№ Относительный путь для параметра, который может принимать URL-адрес конечной точки приложения логики В следующем примере добавляется свойство Method :
В триггере появляется свойство Метод , поэтому вы можете выбрать метод из списка.
Когда будете готовы, сохраните рабочий процесс. На панели инструментов дизайнера выберите Сохранить .
На этом шаге создается URL-адрес, который можно использовать для отправки запроса, запускающего рабочий процесс.
Чтобы скопировать сгенерированный URL-адрес, выберите значок копирования рядом с URL-адресом.
Примечание
Если вы хотите включить решетку или символ фунта ( # ) в URI при вызове триггера Request вместо этого используйте эту закодированную версию:
%25%23
Теперь продолжайте создавать рабочий процесс, добавляя еще одно действие в качестве следующего шага. Например, вы можете ответить на запрос, добавив действие «Ответ», которое вы можете использовать для возврата настроенного ответа и описано далее в этой статье.
Примечание
Ваш рабочий процесс поддерживает входящий запрос открытым только в течение ограниченного времени. Предполагая, что ваш рабочий процесс также включает действие ответа, если ваш рабочий процесс не возвращает ответ вызывающему абоненту. по истечении этого времени ваш рабочий процесс возвращает 504 GATEWAY TIMEOUT статус для вызывающего абонента. Если ваш рабочий процесс не включает действие «Ответ», ваш рабочий процесс немедленно возвращает вызывающей стороне статус 202 ACCEPTED .
Для получения сведений о безопасности, авторизации и шифровании входящих вызовов вашего рабочего процесса, таких как безопасность транспортного уровня (TLS), ранее известная как протокол защищенных сокетов (SSL), открытая аутентификация Azure Active Directory (Azure AD OAuth). ресурс приложения логики с помощью службы управления API Azure или ограничение IP-адресов, с которых исходят входящие вызовы, см. в статье Безопасный доступ и данные — доступ для входящих вызовов к триггерам на основе запросов.
Выходные данные триггера
В следующей таблице перечислены выходные данные триггера запроса:
Имя свойства JSON | Тип данных | Описание |
---|---|---|
коллекторы | Объект | Объект JSON, описывающий заголовки запроса |
корпус | Объект | Объект JSON, описывающий содержимое тела запроса |
Добавить действие ответа
Когда вы используете триггер запроса для получения входящих запросов, вы можете смоделировать ответ и отправить результаты полезной нагрузки обратно вызывающей стороне с помощью встроенного действия ответа, которое работает только с триггер запроса. Эта комбинация с триггером «Запрос» и действием «Ответ» создает шаблон «запрос-ответ». За исключением внутренних циклов Foreach и цикла «До» и параллельных ветвей, вы можете добавить действие «Ответ» в любом месте вашего рабочего процесса.
Важно
Если ваше ответное действие включает следующие заголовки, Azure Logic Apps автоматически удаляет эти заголовки из сгенерированного ответного сообщения, не показывая никаких предупреждений или ошибка. Azure Logic Apps не будет включать эти заголовки, хотя служба не будет запретить вам сохранять рабочие процессы, которые имеют действие ответа с этими заголовками.
-
Разрешить
-
Content-*
заголовки, кромеContent-Disposition
,Content-Encoding
иContent-Type
при использовании операций POST и PUT, но не включены для операций GET -
Печенье
-
Истекает
-
Последнее изменение
-
Набор файлов cookie
-
Кодирование передачи
-
Если у вас есть одно или несколько ответных действий в сложном рабочем процессе с ответвлениями, убедитесь, что рабочий процесс обрабатывает по крайней мере одно действие Response во время выполнения. В противном случае, если все ответные действия пропущены, звонящий получает 502 Ошибка Bad Gateway , даже если рабочий процесс завершается успешно.
В рабочем процессе стандартного приложения логики без отслеживания состояния действие ответа должно отображаться последним в рабочем процессе. Если действие появляется в любом другом месте Azure Logic Apps по-прежнему не будет выполнять действие, пока не завершится выполнение всех остальных действий.
- Потребление
- Стандарт
В дизайнере рабочего процесса под шагом, на который вы хотите добавить действие ответа, выберите Новый шаг .
Или, чтобы добавить действие между шагами, наведите указатель на стрелку между этими шагами. Выберите появившийся знак плюс ( + ), а затем выберите Добавить действие .
В следующем примере действие Response добавляется после триггера Request из предыдущего раздела:
В конструкторе в поле поиска Выберите операцию , выберите Встроенная . В поле поиска введите ответ . В списке действий выберите действие Response .
Для простоты в следующих примерах показан свернутый триггер запроса.
В поле Информация о действии ответа добавьте необходимые значения для ответного сообщения.
В некоторых полях при щелчке внутри их полей открывается список динамического содержимого. Затем вы можете выбрать токены, представляющие доступные результаты предыдущих шагов рабочего процесса. Свойства из схемы, указанной в предыдущем примере, теперь отображаются в списке динамического содержимого.
Например, для поля Заголовки включите Content-Type в качестве имени ключа и задайте значение ключа application/json , как упоминалось ранее в этой статье. Для блока Body можно выбрать вывод тела триггера из списка динамического содержимого.
Чтобы просмотреть заголовки в формате JSON, выберите Переключиться на текстовое представление .
В следующей таблице содержится дополнительная информация о свойствах, которые можно задать в действии ответа.
Наименование объекта Имя свойства JSON Обязательно Описание Код состояния код состояния
Да Код состояния для возврата в ответе Заголовки коллекторы
№ Объект JSON, описывающий один или несколько заголовков для включения в ответ Корпус корпус
№ Тело ответа Чтобы добавить дополнительные свойства для действия, например схему JSON для текста ответа, откройте список Добавить новый параметр и выберите параметры, которые хотите добавить.
Когда закончите, сохраните рабочий процесс. На панели инструментов конструктора выберите Сохранить .
Протестируйте рабочий процесс
Чтобы протестировать рабочий процесс, отправьте HTTP-запрос на сгенерированный URL-адрес. Например, вы можете использовать такой инструмент, как Postman, для отправки HTTP-запроса. Дополнительные сведения о базовом определении JSON триггера и о том, как вызвать этот триггер, см. в следующих разделах: Тип триггера запроса и Вызов, триггер или вложение рабочих процессов с конечными точками HTTP в Azure Logic Apps.
Безопасность и проверка подлинности
В рабочем процессе стандартного приложения логики, который начинается с триггера запроса (но не триггера веб-перехватчика), вы можете использовать функцию Azure Functions для проверки подлинности входящих вызовов, отправленных на конечную точку, созданную этим триггером, с помощью управляемого личность. Это положение также известно как « Easy Auth «. Дополнительные сведения см. в разделе рабочие процессы запуска в стандартных приложениях логики с Easy Auth. , ранее известное как Secure Sockets Layer (SSL), Azure Active Directory Open Authentication (Azure AD OAuth), раскрытие вашего приложения логики с помощью Azure API Management или ограничение IP-адресов, с которых исходят входящие вызовы, см. раздел Безопасный доступ и данные — доступ для входящих вызовы триггеров на основе запросов.
Следующие шаги
- Безопасный доступ и данные — доступ для входящих вызовов к триггерам на основе запросов
- Управляемые или размещенные в Azure соединители в Azure Logic Apps
Обратная связь
Отправить и просмотреть отзыв для
Этот продукт Эта страница
Просмотреть все отзывы о странице
Устранить ошибки «Срок действия маркера безопасности, включенного в запрос, истек»
Последнее обновление: 11 августа 2022 г.
Мои приложения Java, использующие AWS SDK для Java в экземпляре Amazon Elastic Compute Cloud (Amazon EC2), получают исключение, подобное следующему:
com.amazonaws.AmazonServiceException: Срок действия токена безопасности, включенного в запрос, истек ( Сервис: AmazonSQS; код состояния: 403; код ошибки: ExpiredToken; идентификатор запроса: 12a345b6-78cd-9.01e-fg23-45hi67890jkl)
Как решить эту проблему?
Краткое описание
Все запросы API приложений к Amazon Web Services (AWS) должны быть криптографически подписаны с использованием учетных данных, выданных AWS.
Если ваше приложение использует временные учетные данные при создании клиента AWS, срок действия учетных данных истекает через интервал времени, указанный при их создании. Вы должны обновить учетные данные до истечения срока их действия.
Другой причиной истечения срока действия является использование неправильного времени. Согласованная и точная привязка ко времени имеет решающее значение для многих серверных задач и процессов. Если дата и время вашего экземпляра установлены неправильно, учетные данные AWS отклоняются.
Если ваше приложение работает на инстансе Amazon EC2, рекомендуется использовать назначенную инстансу роль AWS Identity and Access Management (IAM). Использование роли IAM позволяет использовать конструктор службы по умолчанию. Клиент конструктора по умолчанию ищет учетные данные, используя цепочку поставщиков учетных данных по умолчанию, в следующем порядке:
- В переменных системной среды: AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY .
- В свойствах системы Java: aws.accessKeyId и aws.secretKey .
- В файле учетных данных по умолчанию (расположение этого файла зависит от платформы).
- В учетных данных профиля экземпляра, содержащихся в метаданных экземпляра, связанных с ролью IAM для экземпляра EC2. Присоединение профиля экземпляра к вашему экземпляру добавляет учетные данные профиля экземпляра в цепочку поставщика учетных данных по умолчанию. Дополнительные сведения см. в разделе Использование роли IAM для предоставления разрешений приложениям, работающим на инстансах Amazon EC2.
Если учетные данные профиля экземпляра доступны, конструктор клиента по умолчанию создает экземпляр класса AWS SDK InstanceProfileCredentialsProvider. AWS использует этот класс для подписи запросов API учетными данными AWS, используя временные учетные данные безопасности из метаданных экземпляра Amazon EC2.
Важно: Если ваше приложение использует класс AWS SDK ProfileCredentialsProvider для предоставления временных учетных данных AWS, вы несете ответственность за проверку и обновление учетных данных до истечения срока их действия. Отсутствие проверки или обновления учетных данных увеличивает вероятность сбоев приложений, вызванных ошибками ExpiredToken.
Резолюция
Использовать Amazon Time Sync Service или источники NTP
Настройте службу синхронизации времени Amazon или другой источник протокола сетевого времени (NTP) в своем экземпляре Amazon EC2. Это гарантирует, что ваш экземпляр Linux имеет согласованную и точную привязку ко времени. Дополнительные сведения см. в разделе Установка времени для экземпляра Linux или Установка времени для экземпляра Windows.
Использовать пользовательские временные учетные данные AWS
Обновить временные учетные данные за пять минут до истечения срока их действия.
Использовать роль IAM, назначенную экземпляру
Прикрепите профиль экземпляра к вашему экземпляру. Дополнительные сведения см. в разделе Использование роли IAM для предоставления разрешений приложениям, работающим на инстансах Amazon EC2. Убедитесь, что в вашем коде или экземпляре не указаны другие учетные данные. Учетные данные профиля экземпляра — это последнее место, где цепочка поставщиков учетных данных по умолчанию ищет учетные данные. Если у вас есть учетные данные, расположенные где-то раньше в цепочке поиска, эти учетные данные не позволят использовать IAM. Дополнительные сведения см. в разделе Работа с учетными данными AWS.
Чтобы просмотреть учетные данные AWS для роли IAM, прикрепленной к экземпляру, выполните следующие команды из оболочки Linux или из Windows PowerShell (версия 3.0 или более поздняя). Обязательно замените examplerole на имя вашей роли IAM.
Linux
Используйте команду curl для просмотра учетных данных AWS:
$ curl http://169.254.169.254/latest/meta-data/iam/security-credentials/examplerole
Эта команда возвращает вывод, аналогичный следующему:
{ «Код»: «Успех», «Последнее обновление»: «2016-04-26T16:39:16Z», «Тип»: «AWS-HMAC», "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", «Жетон» : «жетон», "Срок действия": "2016-04-27T22:39:16Z" }
$ экспорт NO_PROXY=169.254.169.254
2. Убедитесь, что экземпляр не отправляет несколько одновременных запросов и не запускает несколько сеансов параллельно. Несколько одновременных запросов и несколько параллельных сеансов могут привести к регулированию службы метаданных экземпляра (IMDS). Чтобы смягчить это, используйте кэширование и повторные попытки с экспоненциальной задержкой. Как и в случае с любой службой, вызовы могут время от времени завершаться ошибкой. Ожидается, что клиенты будут повторять попытку, когда это произойдет. Дополнительные сведения см. в разделе Регулирование запросов.
Чтобы реализовать повторы, измените AWS_METADATA_SERVICE_NUM_ATTEMPTS . Вы можете установить параметры, используя переменные среды, в файле ~/.aws/confi g или в сеансе пользователя botocore. Дополнительные сведения см. в разделе «Конфигурация» документации Boto3 DOCS 1.17.6.
Пример:
AWS_METADATA_SERVICE_TIMEOUT = 10 AWS_METADATA_SERVICE_NUM_ATTEMPTS = 5
3. Если вы запускаете тест curl в док-контейнере, настройте параметры метаданных экземпляра http-put-response-hop-limit :
$ aws ec2 modify-instance-metadata-options --instance-id $(curl 169. 254.169.254/latest/meta-data/instance-id) --http-put-response-hop-limit 2 --http-endpoint включено
PS C:\> Invoke-RestMethod http://169.254.169.254/latest/meta-data/iam/security-credentials/examplerole
Эта команда возвращает вывод, аналогичный следующему:
Код : Успех Последнее обновление : 2016-07-18T18:09:47Z Тип: AWS-HMAC AccessKeyId : AKIAIOSFODNN7EXAMPLE SecretAccessKey : wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Токен: жетон Срок действия: 2016-04-27T22:39:16Z
Используйте эти команды для проверки последних временных учетных данных для экземпляра. Эти учетные данные автоматически меняются или обновляются примерно за пять минут до истечения срока действия назначенных временных учетных данных.
Помогла ли эта статья?
Отправить отзыв
Вам нужен счет или техническая поддержка?
Обратитесь в службу поддержки AWS
Войдите в консоль
Узнайте об AWS
- Что такое AWS?
- Что такое облачные вычисления?
- AWS Разнообразие, равенство и инклюзивность
- Что такое DevOps?
- Что такое контейнер?
- Что такое озеро данных?
- Облачная безопасность AWS
- Что нового
- Блоги
- Пресс-релизы
Ресурсы для AWS
- Начало работы
- Обучение и сертификация
- Портфель решений AWS
- Архитектурный центр
- Часто задаваемые вопросы по продуктам и техническим вопросам
- Аналитические отчеты
- Партнеры AWS
Разработчики на AWS
- Центр разработчиков
- SDK и инструменты
- . NET на AWS
- Python на AWS
- Java на AWS
- PHP на AWS
- JavaScript на AWS
Помощь
- Свяжитесь с нами
- Подать заявку в службу поддержки
- Центр знаний
- AWS re: Сообщение
- Обзор поддержки AWS
- Юридический
- Карьера в AWS
Amazon является работодателем с равными возможностями: Меньшинства / Женщины / Инвалидность / Ветеран / Гендерная идентичность / Сексуальная ориентация / Возраст.
- Конфиденциальность
- |
- Условия сайта
- |
- Настройки файлов cookie
- |
- © 2022, Amazon Web Services, Inc. или ее дочерние компании. Все права защищены.
Поддержка AWS для Internet Explorer заканчивается 31. 07.2022. Поддерживаемые браузеры: Chrome, Firefox, Edge и Safari. Подробнее »
Начало работы с мерж-реквестами
- Как создать мерж-реквест
- Что вы можете делать с мерж-реквестами
- Рецензент
- Мерж-реквесты для закрытия задач
- Удаление исходной ветки
- Рекомендации и лучшие практики для мерж-реквестов
Мерж-реквест ( MR ) — основа GitLab как инструмента для кода совместная работа и контроль версий.
При работе на платформе на базе Git можно использовать ветвление стратегии совместной работы над кодом.
Репозиторий состоит из его ветки по умолчанию , которая содержит основная версия кодовой базы, из которой вы создаете второстепенную ветки, также называемые ветками функций , чтобы предлагать изменения в кодовую базу, не вводя их непосредственно в основные версию кодовой базы.
Ветвление особенно важно при сотрудничестве с другими, предотвращение отправки изменений непосредственно в ветку по умолчанию без предварительных проверок, испытаний и утверждений.
Когда вы создаете новую ветку функций, меняете файлы и нажимаете его в GitLab, у вас есть возможность создать мерж-реквест , что по сути является запросом на объединение одной ветки с другой.
Ветка, в которую вы добавили свои изменения, называется исходной веткой . в то время как ветка, которую вы запрашиваете для слияния ваших изменений, позвонил целевая ветвь .
Целевой ветвью может быть ветвь по умолчанию или любая другая ветвь, в зависимости от на стратегии ветвления, которые вы выбираете.
В мерж-реквесте помимо визуализации различий между исходный контент и предлагаемые вами изменения, вы можете выполнить значительное количество задач перед завершением работы и слиянием запроса на слияние.
Вы можете посмотреть наше видео GitLab Flow для краткий обзор работы с мерж-реквестами.
Как создать запрос на слияние
Изучите различные способы создания запроса на слияние.
Что можно делать с мерж-реквестами
Когда вы запускаете новый запрос на слияние, вы можете сразу включить следующее опции. Вы также можете добавить их позже, выбрав Изменить при слиянии. странице запроса в правом верхнем углу или с помощью сочетания клавиш для мерж-реквестов:
- Назначьте запрос на слияние коллеге для проверки. При наличии нескольких исполнителей вы можете назначить его более чем одному человеку одновременно.
- Установите веху для отслеживания срочных изменений.
- Добавьте метки, чтобы облегчить контекстуализацию и фильтрацию запросов на слияние с течением времени.
- Требовать одобрения от вашей команды.
- Автоматически закрывать проблемы при их объединении.
- Включите опцию удаления исходной ветки, когда запрос на слияние принят, чтобы ваш репозиторий оставался чистым.
- Включите опцию сквоша коммитов, когда мерж-реквест принят, чтобы объединить все коммиты в один перед слиянием, таким образом сохраняя чистую историю коммитов в вашем репозитории.
- Установите запрос на слияние как Draft , чтобы избежать случайного слияния до того, как он будет готов.
После создания запроса на слияние вы также можете:
- Обсудите свою реализацию с вашей командой в ветке мерж-реквеста.
- Выполняйте встроенные обзоры кода.
- Добавьте зависимости мерж-реквеста, чтобы ограничить его слияние только после слияния других мерж-реквестов.
- Предварительный просмотр конвейеров непрерывной интеграции в виджете мерж-реквеста.
- Предварительный просмотр того, как ваши изменения выглядят непосредственно в развернутом приложении, с помощью Review Apps.
- Разрешить совместную работу над мерж-реквестами между форками.
- Выполните проверку, чтобы создать несколько комментариев к различиям и опубликовать их, когда будете готовы.
- Добавьте предложения по коду, чтобы изменить содержимое запросов на слияние непосредственно в потоки запросов на слияние, и легко применяйте их к кодовой базе непосредственно из пользовательского интерфейса.
- Добавьте оценку времени и время, затраченное на этот запрос на слияние, с помощью отслеживания времени.
Многие из этих параметров могут быть установлены:
- Со страницы мерж-реквеста с помощью сочетаний клавиш.
- При отправке изменений из командной строки с параметрами отправки Git.
См. также другие функции, связанные с мерж-реквестами.
Рецензент
предостережениеЗапрос проверки кода является важной частью написания кода. Однако решение о том, кто должен проверять ваш код и запрос на проверку — непростая задача. Использование поля «правопреемник» как для авторов, так и для рецензенты мешают другим определить, кто что делает в мерж-реквесте.
Функция рецензентов мерж-реквеста позволяет запрашивать рецензирование вашей работы и посмотреть статус рассмотрения. Рецензенты помогают различать роли пользователей участвует в запросе на слияние. По сравнению с Правопреемником , который напрямую ответственный за создание или слияние запроса на слияние, рецензент является членом команды которые могут участвовать только в одном аспекте запроса на слияние, например, в рецензировании.
Чтобы запросить проверку запроса на слияние, разверните Рецензенты выберите поле в правая боковая панель. Найдите пользователей, у которых вы хотите запросить обзор. При выборе GitLab создает элемент списка дел для каждого рецензента.
Чтобы узнать больше, прочтите Просмотр запроса на слияние.
Запросы на слияние для закрытия задач
Чтобы создать запрос на слияние, чтобы закрыть проблему после ее слияния, вы можете:
Если проблема является конфиденциальной, вы можете использовать другой рабочий процесс для мерж-реквесты по конфиденциальным вопросам для предотвращения раскрытия конфиденциальной информации.
Удаление исходной ветки
При создании запроса на слияние выберите Удалить исходную ветку, когда мерж-реквест принял параметр , и исходный ветка удаляется при слиянии мерж-реквеста. Чтобы сделать этот вариант включен по умолчанию для всех новых мерж-реквестов, включите его в настройки проекта.