Например инфо: Портал государственных медицинских услуг Брянской области

Содержание

Модуль ngx_http_limit_req_module

Пример конфигурации
Директивы
     limit_req
     limit_req_dry_run
     limit_req_log_level
     limit_req_status
     limit_req_zone
Встроенные переменные

Модуль ngx_http_limit_req_module (0.7.21) позволяет ограничить скорость обработки запросов по заданному ключу или, как частный случай, скорость обработки запросов, поступающих с одного IP-адреса. Ограничение обеспечивается с помощью метода “leaky bucket”.

Пример конфигурации
http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
    ...
    server {
        ...
        location /search/ {
            limit_req zone=one burst=5;
        }
Директивы
Синтаксис: limit_req zone=название [
burst
=число] [nodelay | delay=число];

Умолчание:
Контекст: http, server, location

Задаёт зону разделяемой памяти (zone) и максимальный размер всплеска запросов (burst). Если скорость поступления запросов превышает описанную в зоне, то их обработка задерживается так, чтобы запросы обрабатывались с заданной скоростью. Избыточные запросы задерживаются до тех пор, пока их число не превысит максимальный размер всплеска. При превышении запрос завершается с ошибкой. По умолчанию максимальный размер всплеска равен нулю. Например, директивы

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
    location /search/ {
        limit_req zone=one burst=5;
    }

позволяют в среднем не более 1 запроса в секунду со всплесками не более 5 запросов.

Если же избыточные запросы в пределах лимита всплесков задерживать не требуется, то следует использовать параметр nodelay:

limit_req zone=one burst=5 nodelay;

Параметр delay (1.15.7) задаёт лимит, по достижении которого избыточные запросы задерживаются. Значение по умолчанию равно нулю и означает, что задерживаются все избыточные запросы.

Директив limit_req может быть несколько. Например, следующая конфигурация ограничивает скорость обработки запросов, поступающих с одного IP-адреса, и в то же время ограничивает скорость обработки запросов одним виртуальным сервером:

limit_req_zone $binary_remote_addr zone=perip:10m rate=1r/s;
limit_req_zone $server_name zone=perserver:10m rate=10r/s;
server {
    ...
    limit_req zone=perip burst=5 nodelay;
    limit_req zone=perserver burst=10;
}

Директивы наследуются с предыдущего уровня конфигурации при условии, что на данном уровне не описаны свои директивы limit_req.

Синтаксис: limit_req_dry_run on | off;
Умолчание:
limit_req_dry_run off;
Контекст: http, server,
location

Эта директива появилась в версии 1. 17.1.

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

Синтаксис: limit_req_log_level info | notice | warn | error;
Умолчание:
limit_req_log_level error;
Контекст: http, server,
location

Эта директива появилась в версии 0.8.18.

Задаёт желаемый уровень записи в лог случаев отказа в обработке запросов при превышении скорости и случаев задержек при обработке запроса. Задержки записываются в лог с уровнем на единицу меньшим, чем отказы, например, если указано “limit_req_log_level notice”, то задержки будут записываться в лог на уровне info.

Синтаксис: limit_req_status код;
Умолчание:
limit_req_status 503;
Контекст:
http, server, location

Эта директива появилась в версии 1.3.15.

Позволяет переопределить код ответа, используемый при отклонении запросов.

Синтаксис: limit_req_zone ключ zone=название:размер rate=скорость [sync];
Умолчание:
Контекст: http

Задаёт параметры зоны разделяемой памяти, которая хранит состояние для разных значений ключа.

Состояние в частности хранит текущее число избыточных запросов. В качестве ключа можно использовать текст, переменные и их комбинации. Запросы с пустым значением ключа не учитываются.

До версии 1.7.6 в качестве ключа можно было задать ровно одну переменную.

Пример использования:

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

В данном случае состояния хранятся в зоне “one” размером 10 мегабайт, и средняя скорость обработки запросов для этой зоны не может превышать 1 запроса в секунду.

В качестве ключа используется IP-адрес клиента. Обратите внимание, что вместо переменной $remote_addr используется переменная $binary_remote_addr. Длина значения переменной $binary_remote_addr всегда равна 4 байтам для IPv4-адресов или 16 байтам для IPv6-адресов. При этом размер состояния всегда равен 64 байтам на 32-битных платформах и 128 байтам на 64-битных платформах.

В зоне размером 1 мегабайт может разместиться около 16 тысяч состояний размером 64 байта или около 8 тысяч состояний размером 128 байт.

При переполнении зоны удаляется наименее востребованное состояние. Если и это не позволяет создать новое состояние, запрос завершается с ошибкой.

Скорость задаётся в запросах в секунду (r/s). Если же нужна скорость меньше одного запроса в секунду, то она задаётся в запросах в минуту (r/m), например, ползапроса в секунду — это 30r/m.

Параметр sync (1.15.3) разрешает синхронизацию данной зоны разделяемой памяти.

Параметр sync доступен как часть коммерческой подписки.
Дополнительно, как часть коммерческой подписки, информацию о состоянии каждой такой зоны разделяемой памяти можно получить или сбросить при помощи API начиная с версии 1.17.7.
Встроенные переменные
$limit_req_status
хранит результат ограничения скорости поступления запросов (1. 17.6): PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN или REJECTED_DRY_RUN

Глава 2. Основы VoiceOver

Глава 2. Основы VoiceOver

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

Включение и выключение VoiceOver

Функцию VoiceOver можно включить и выключить в любой момент без перезагрузки компьютера и повторного входа в систему.

Способы включения и выключения VoiceOver

  • Нажмите сочетание клавиш Command-F5. Если функция VoiceOver включена, при нажатии Command-F5 она выключится.
  • Воспользуйтесь панелью «Универсальный доступ» в Системных настройках.

Если на панели «Универсальный доступ» в Системных настройках задано отображение меню «Универсальный доступ» в строке состояния, в этом меню показывается, включена ли функция VoiceOver.

При первом запуске VoiceOver Вы можете ознакомиться с кратким руководством, где в интерактивном режиме представлены основные сведения о важнейших функциях перемещения и взаимодействия, предусмотренных в VoiceOver. Когда функция VoiceOver включена, Вы можете в любой момент начать работу с кратким руководством, нажав сочетание клавиш VO-Command-F8.

Включение VoiceOver для окна регистрации в системе

В Системных настройках можно установить параметр для автоматического включения VoiceOver в окне регистрации в системе Mac OS X.

Как включить VoiceOver в окне регистрации в системе

  1. Выберите меню «Apple» > «Системные настройки» и нажмите «Учетные записи».

    Если доступ к настройкам учетных записей заблокирован, нажмите значок с изображением замка в нижнем левом углу страницы и введите пароль администратора для получения доступа.

  2. В списке учетных записей наведите курсор VoiceOver на «Параметры входа» и нажмите VO-пробел.
  3. В параметрах входа нажимайте VO-стрелка вправо, пока не прозвучит сообщение «Использовать VoiceOver в окне входа в систему».
  4. Нажмите VO-пробел для установки флажка.

Приостановка воспроизведения речи

Во время воспроизведения речи Вы можете временно приостановить воспроизведение, а затем возобновить его с того же места.

Как приостановить или возобновить воспроизведение речи

Нажмите клавишу Control. Если Вы используете жесты VoiceOver, нажмите трекпад двумя пальцами. Для возобновления воспроизведения речи снова нажмите эту клавишу или повторите указанный жест.

Если Вы переместите курсор VoiceOver после приостановки воспроизведения речи, при возобновлении озвучивается текст, относящийся к тому объекту, на который указывает курсор VoiceOver в данный момент.

Если нужно повторить последнее слово или фразу озвучиваемого текста, нажмите сочетание клавиш VO-Z.

Использование диалогового окна приветствия

При первом запуске VoiceOver отображается диалоговое окно приветствия.

Способы использования диалогового окна

  • Для продолжения использования VoiceOver нажмите клавишу Enter или кнопку «OK».
  • Для продолжения использования VoiceOver и отключения отображения диалогового окна приветствия при каждом запуске VoiceOver нажмите клавишу V или установите флажок «Больше не показывать данное сообщение».
  • Для запуска краткого руководства по VoiceOver нажмите клавишу пробела или нажмите «Изучение VoiceOver».
  • Для отключения VoiceOver нажмите клавиши Command-Q, клавишу Escape или кнопку «Отменить».

Если отображение диалогового окна приветствия было отключено, но требуется, чтобы оно снова отображалось, выберите соответствующий флажок в разделе «Основные» Утилиты VoiceOver.

Использование меню Справки VoiceOver

Когда запущена функция VoiceOver, Вы можете открыть меню Справки VoiceOver, чтобы получить дополнительную информацию об использовании VoiceOver и командах, относящихся к объекту, на который указывает курсор VoiceOver.

Вызов меню VoiceOver

  1. Откройте меню Справки VoiceOver, нажав VO-H.

    На экране отобразится меню VoiceOver для пользователей, не имеющих проблем со зрением. Для увеличения или уменьшения размера шрифта в меню нажмите клавишу } или {.

  2. Для перемещения между меню и вложенными подменю пользуйтесь клавишами со стрелками.
  • Если Вам известно название пункта меню, введите несколько букв из этого названия. Отобразятся только те пункты, названия которых содержат введенный фрагмент. Для возврата к отображению всех объектов нажмите клавишу Delete.
  • При переходе к подменю озвучивается количество пунктов в этом подменю.
  • Если для пункта меню назначено сочетание клавиш, оно озвучивается после названия пункта. В следующий раз Вы можете ввести команду с клавиатуры, не открывая меню Справки VoiceOver. Например, сочетание клавиш VO-H-H обеспечивает прямой доступ к меню «Команды».
  • Чтобы выбрать пункт меню, нажмите клавишу пробела или клавишу Return.

    Чтобы закрыть меню Справки VoiceOver, не выбирая пункт меню, нажмите клавишу Escape.

  • Меню «Команды»

    Если Вы знаете название необходимой команды VoiceOver, но не можете вспомнить ее сочетание клавиш, с помощью меню «Команды» можно найти и выбрать эту команду и применить ее к объекту, который в данный момент находится под курсором VoiceOver.

    Как найти команду VoiceOver

    1. Включив VoiceOver, откройте меню «Команды» нажатием клавиш VO-H-H.
    2. Введите несколько букв имени команды, чтобы ограничить меню «Команды» командами, которые содержат введенные Вами буквы.

      С помощью клавиш со стрелками перемещайтесь по меню «Команды», пока не услышите название необходимой команды. Чтобы вернуться к командам снова, нажмите клавишу Delete.

    3. Услышав название необходимой команды, нажмите клавишу Return или клавишу пробела, чтобы применить команду к объекту под курсором VoiceOver.

    Блокировка клавиш VO

    Команды VoiceOver вводятся нажатием клавиш Control и Option (клавиши VO) вместе с функциональными клавишами, клавишами со стрелками и другими клавишами. Например, чтобы открыть меню справки VoiceOver, нажмите VO-H.

    Для удобства можно заблокировать клавиши VO, чтобы не приходилось нажимать их каждый раз при вводе команд — для ввода команды Вам нужно будет только нажать оставшиеся клавиши. Например, чтобы открыть меню справки VoiceOver, нажмите H.

    Как заблокировать или снять блокировку клавиш VO

    Нажмите VO-;.

    Если Вы не знакомы с расположением специальных клавиш на своей клавиатуре, Вы можете включить справку клавиатуры в VoiceOver.

    Общая информация о клавишах, сочетаниях клавиш и жестах

    Разрешение конфликтов между командами VoiceOver, вводимыми с клавиатуры

    В некоторых программах для выполнения определенных действий необходимо нажать клавиши Control и Option (клавиши VO) в сочетании с другой клавишей. Если при включенной функции VoiceOver требуется выполнить команду для другой программы, можно с помощью команды VoiceOver задать игнорирование следующего сочетания клавиш.

    Как задать игнорирования следующего сочетания клавиш в VoiceOver

    1. Нажмите сочетание клавиш VO-Tab.
    2. Введите команду для другой программы.

    На панели «Сочетания клавиш» в настройках клавиатуры можно задать различные сочетания клавиш для программ Mac OS X и других программ.

    Общая информация о клавишах, сочетаниях клавиш и жестах

    С помощью справки клавиатуры Вы можете прослушать название любой клавиши, нажав эту клавишу, а также прослушать команду, сопоставленную сочетанию клавиш, нажав это сочетание. Кроме того, предусмотрены следующие возможности.

    • С помощью NumPad Commander или Keyboard Commander Вы можете получить информацию о командах, назначенных конкретным клавишам.
    • С помощью монитора Брайля Вы можете получить информацию о названиях клавиш и связанных с ними командах.
    • если Вы используете жесты VoiceOver, Вы можете получить информацию о любом жесте VoiceOver и сопоставленной ему команде VoiceOver, использовав этот жест на трекпаде.

    При использовании справки клавиатуры Вы не можете пользоваться клавиатурой, дисплеем Брайля и трекпадом для выполнения других задач.

    Как открыть справку клавиатуры

    При включенной функции VoiceOver нажмите сочетание клавиш VO-K.

    Как прослушать название клавиши на клавиатуре или клавиши ввода по системе Брайля

    Нажмите эту клавишу. Например, при нажатии клавиши D озвучивается название буквы «d».

    Как прослушать команду VoiceOver, назначенную для клавиши

    Нажмите сочетание клавиш Control-Option и нужную клавишу. Например, при нажатии сочетания клавиш Control-Option-D озвучивается текст «Control-Option-D Dock Moves VoiceOver cursor to the Dock» (Control-Option-D, Dock, перемещение курсора VoiceOver в Dock).

    Как прослушать название жеста и соответствующую ему команду VoiceOver

    Используйте этот жест на трекпаде. Например, при двойном нажатии озвучивается текст «Double-tap Select an item» (Двойное нажатие, выбор объекта).

    Как прослушать информацию об альтернативных функциях для клавиши или жеста

    Некоторым клавишам и жестам назначены альтернативные функции, которые выполняются при нажатии клавиш модификации: Shift, Control, Option или Command.

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

    Как завершить справку клавиатуры

    Нажмите клавишу Escape, расположенную в левом верхнем углу клавиатуры.

    Если работа со стандартной компьютерной клавиатурой QWERTY вызывает у Вас затруднения, Вы можете переключить клавиатуру на раскладку Дворака, которая имеет оптимальное расположение клавиш для комфортной и удобной работы.

    Если одновременное нажатие нескольких клавиш вызывает у Вас затруднения, Вы можете включить режим залипания клавиш, который позволяет ввести сочетание клавиш модификации, последовательно нажимая их.

    Общая информация о звуковых эффектах VoiceOver

    В дополнение к набору звуков, используемому в Mac OS X, VoiceOver использует ряд уникальных звуковых эффектов для обозначения событий (например, открытие окна) и местоположения (например, достижение границ). Можно прослушать описание звуков, чтобы узнать об их значении.

    Как прослушать описания звуковых эффектов

    1. Откройте меню Справки VoiceOver, нажав VO-H.
    2. Переместитесь вниз по меню к справке «Звуки» и нажмите клавишу со стрелкой вправо.
    3. С помощью клавиши со стрелкой вниз и вверх перемещайтесь по списку и прослушайте каждый звуковой эффект и его описание.

      Для повтора звукового эффекта и его описания нажмите пробел.

    4. Закончив прослушивание, нажмите клавишу Escape, чтобы закрыть меню VoiceOver.

    Прослушивание подсказок и информации об объекте

    В VoiceOver предусмотрены различные способы получения информации об объекте, на который указывает курсор VoiceOver.

    Способы получения информации об объекте

    • Для прослушивания описания объекта нажмите сочетание клавиш VO-F3.

      Если Вы используете жесты VoiceOver, нажмите трекпад три раза. Если курсор VoiceOver не указывает на объект, VoiceOver воспроизводит звуковой сигнал, обозначающий пустую область.

    • Для прослушивания всплывающей подсказки нажмите сочетание клавиш VO-Shift-H. При отсутствии всплывающей подсказки для данного объекта VoiceOver воспроизводит тональный сигнал.
    • Для прослушивания инструкций по использованию объекта нажмите сочетание клавиш VO-Shift-N.

      Для автоматического прослушивания инструкций без ввода команды запустите утилиту VoiceOver и выберите соответствующий режим на панели «Подсказки» в категории «Детализация».

    Описания, всплывающие подсказки и инструкции отображаются на панели субтитров и на панели Брайля, если эти панели открыты.

    Веб-страница может быть содержать сочетания клавиш, называемых клавишами доступа к объектам на веб-странице, таким как ссылки и кнопки. VoiceOver распознает клавиши доступа и может озвучивать описание клавиш доступа, если в утилите VoiceOver на панели «Подсказки» в категории «Детализация» выбран режим озвучивания всплывающих подсказок. Например, когда VoiceOver распознает клавишу доступа к ссылке, может озвучиваться текст «Access key available: s» (Имеется клавиша доступа: s), где «s» – клавиша доступа. Затем можно нажать клавиши Control-S для перехода по этой ссылке.

    Поиск курсора

    Нажимая клавиши F1-F6 в сочетании с клавишами VO (Control и Option), Вы можете прослушать информацию о местоположении курсора VoiceOver, курсора клавиатуры и указателя мыши.

    Сочетание клавиш

    Прослушиваемая информация

    VO-F1

    Общая информация о программах: описание активной в данный момент программы и количество работающих программ.

    VO-F2

    Общая информация об окне: описание активного окна.

    Объект, на который указывает курсор VoiceOver. В описании указано текущее состояние объекта, например флажка (установлен или снят) или регулятора (процентное значение).

    Если Вы используете жесты VoiceOver, Вы можете нажать трекпад три раза, чтобы прослушать информацию об объекте, на который указывает курсор VoiceOver. При отсутствии такого объекта воспроизводится звуковой сигнал, обозначающий пустую область экрана.

    VO-Command-F3

    Размер объекта, на который указывает курсор VoiceOver.

    VO-Command-F3-F3

    Местоположение объекта, на который указывает курсор VoiceOver.

    VO-F4

    Объект, на котором расположен курсор клавиатуры. В описании указывается текущее состояние объекта.

    VO-F4-F4

    Местоположение точки ввода относительно левого верхнего угла содержащего ее текстового объекта. Например, может озвучиваться текст «Insertion point is two inches right, five inches down from top-left corner of edit text» (Точка ввода находится на два дюйма правее и на пять дюймов ниже левого верхнего угла редактируемого текста).

    VO-F5

    Объект, на который указывает курсор мыши. В описании указывается текущее состояние объекта.

    VO-F5-F5

    Местоположение курсора мыши на экране относительно левого верхнего угла экрана в координатах x и y.

    VO-F5-F5-F5

    Местоположение курсора мыши относительно текущего окна в координатах x и y.

    VO-F6

    Выбранный в данный момент объект (например, папка или текст в документе).

    Поиск курсора VoiceOver на экране можно также упростить с помощью эффектов объемного звучания.

    Прослушивание местонахождения объекта на экране

    Прослушивание расположения элемента на экране

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

    Как включить объемный звук

    1. При включенной функции VoiceOver откройте утилиту VoiceOver, нажав VO-F8.
    2. Нажмите «Звук» в таблице категорий и затем установите флажок «Включить объемный звук».

    Если в настройках универсального доступа Вы выбрали воспроизведение стереозвука в монорежиме, Вы не сможете услышать объемный звук VoiceOver.

    Прослушивание изменений в ходе выполнения задачи и статусе

    Вы можете услышать, когда изменится положение индикатора выполнения задачи или текст статуса, на который наведен курсор VoiceOver. Например, при установке программного обеспечения можно услышать сообщение «Установка выполнена на 45 процентов» или звук тикающих часов.

    Использование команды VoiceOver (только для текста статуса)

    1. Нажмите сочетание клавиш VO-V для перехода в режим выбора параметров детализации.

      Эти настройки включают в себя повтор набора на клавиатуре, пунктуацию и текстовые атрибуты, а также другие настройки.

    2. Нажимайте клавишу со стрелкой влево или стрелкой вправо, пока не услышите «при изменении статуса». Озвучивается также текущий режим.
    3. Нажимайте клавиши со стрелками вверх или вниз, пока не прозвучит название нужной настройки: «Звуковой сигнал», «Произнести», «Действие не требуется».
    4. Для выхода из режима выбора нажмите клавишу Escape.

    Использование утилиты VoiceOver

    1. При включенной функции VoiceOver откройте утилиту VoiceOver, нажав VO-F8.
    2. Нажмите «Детализация» в таблице категорий, затем нажмите «Объявления».
    3. Для описания опций, используемых для текста статуса и изменений на шкале состояния, нажмите кнопку «Справка» (в виде вопросительного знака) в нижнем правом углу.

    Если во время изменения параметров Вы используете переносные настройки на подключенном компьютере, новые значения сохраняются не на подключенном компьютере, а в переносных настройках.

    Управление областями содержимого

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

    Можно перейти за пределы области содержимого или остановиться и начать чтение содержимого области. Например, можно переместиться за боковое меню Finder для перехода в браузер просмотра или обращаться к боковому меню для открытия папок и файлов.

    Как начать управление

    Нажмите сочетание клавиш VO-Shift-стрелка вниз. Если используются жесты VoiceOver, выполните пролистывание двумя пальцами по трекпаду вправо.

    Как завершить управление

    Нажмите сочетание клавиш VO-Shift-стрелка вверх. Если используются жесты VoiceOver, выполните пролистывание двумя пальцами по трекпаду влево.

    Начинать и завершать управление областями можно неограниченное число раз. Когда работа со всеми управляемыми объектами будет завершена, Вы услышите звуковой сигнал.

    Курсор VoiceOver остается в границах управляемой области, поэтому перемещение возможно только внутри этой области.

    Выбор и отмена выбора элементов

    Вы можете выбрать и отменить выбор как одного, так и нескольких элементов.

    Как выбрать элементы

    • Для одного элемента, когда отслеживание курсора выключено, нажмите VO-Command-F4.
    • Если используются жесты VoiceOver, один элемент можно выбрать, дважды коснувшись трекпада.
    • Для выбора нескольких элементов сначала нажмите VO-Shift-F3, чтобы отключить отслеживание курсора. Затем переместите курсор VoiceOver на первый элемент и нажмите VO-Command-пробел. Переместитесь на следующую часть и снова нажмите эти клавиши. Повторяйте эти действия, пока не будут выбраны все нужные Вам элементы.

    Для прослушивания следующего выбранного элемента нажмите VO-F6.

    Как отменить выбор элементов

    1. Для отмены выбора одного элемента, выделенного курсором VoiceOver, нажмите VO-Command-пробел.
    2. Если используются жесты VoiceOver, выбор одного элемента можно отменить, дважды коснувшись трекпада.
    3. Чтобы отменить выбор всех выбранных элементов, выберите один из элементов и нажмите VO-Command-F4. Для отмены выбора последнего и текущего элемента нажмите VO-Command-F4.

    Прослушивание названий нажатых клавиш модификации

    VoiceOver может озвучивать название клавиши модификации (Shift, Control, Option, Command или Fn) при ее нажатии. Эта функция может помочь Вам привыкнуть к расположению клавиш модификации на клавиатуре и избежать ошибок.

    Как прослушать название нажатой клавиши модификации:

    1. При включенной функции VoiceOver откройте утилиту VoiceOver, нажав VO-F8.
    2. Нажмите «Детализация» в таблице категорий, затем нажмите «Объявления».
    3. Установите флажок «Объявлять о нажатии клавиши модификации».

    Перетаскивание элементов с помощью клавиатуры

    Перетаскивать файлы можно с помощью мыши, при включенном или выключенном отслеживании мыши.

    Как перемещать элементы с помощью мыши и клавиатуры

    1. Наведите курсор VoiceOver на элемент, который Вы хотите переместить.

      Если отслеживание мыши выключено, нажмите VO-Command-F5 для перемещения курсора VoiceOver на нужное место.

    2. Убедитесь, что указатель мыши находится над элементом (нажмите VO-F5).
    3. Заблокируйте кнопку мыши (нажмите VO-Command-Shift-пробел).
    4. Поместите курсор VoiceOver в нужное место.

      Если отслеживание мыши выключено, нажмите VO-Command-F5 для перемещения указателя мыши на нужное место.

    5. Убедитесь, что указатель мыши находится над элементом (нажмите VO-F5).
    6. Разблокируйте кнопку мыши (нажмите VO-Command-Shift-пробел).

    Отключение отслеживания курсора

    Курсор VoiceOver и курсор клавиатуры установлены на «слежение» друг за другом. Можно отключить отслеживание курсора VoiceOver для независимой работы с клавиатурой, указателем мыши и точкой вставки. Например, когда отслеживание курсора выключено, Вы можете оставить курсор клавиатуры на документе, с которым Вы работаете, и использовать курсор VoiceOver для проверки информации в другом месте на своем компьютере без потери того места в документе, где Вы остановились.

    Как отключить отслеживание курсора

    1. При включенной функции VoiceOver откройте утилиту VoiceOver, нажав VO-F8.
    2. Снимите два флажка, относящихся к курсору клавиатуры и курсору VoiceOver.
    3. Снимите два флажка, относящихся к точке вставки и курсору VoiceOver.
    4. Во всплывающем меню «Курсор мыши» выберите «Не связан с курсором VoiceOver».

    Когда Вы работаете с отключенным отслеживанием курсора, Вы можете использовать быстрые команды, если Вам нужно поместить один курсор туда, где расположен другой.

    Работа с отключенной функцией отслеживания курсора

    Во время работы можно отключить ранее установленные опции отслеживания курсора в утилите VoiceOver, нажав VO-Shift-F3. Если Вы нажмете эту команду снова, опции отслеживания курсора будут снова включены. Эта команда не изменяет параметры в Утилите VoiceOver.

    Работа при отключенном режиме отслеживания курсора

    При отключенном режиме отслеживания курсора можно быстро переместить один курсор в местоположение другого курсора с помощью специальных команд.

    Способы синхронизации курсоров

    • Для перемещения курсора VoiceOver в местоположение курсора клавиатуры нажмите сочетание клавиш VO-Shift-F4.
    • Для перемещения курсора клавиатуры в местоположение курсора VoiceOver нажмите сочетание клавиш VO-Command-F4.
    • Для перемещения курсора VoiceOver в местоположение указателя мыши нажмите сочетание клавиш VO-Shift-F5.
    • Для перемещения указателя мыши в местоположение курсора VoiceOver нажмите сочетание клавиш VO-Command-F5.

    Включение режима отслеживания указателя мыши

    В режиме отслеживания указателя мыши указатель мыши и курсор VoiceOver всегда указывают на один и тот же объект.

    Как включить режим отслеживания указателя мыши

    1. При включенной функции VoiceOver откройте утилиту VoiceOver, нажав VO-F8.
    2. В таблице категорий нажмите «Навигация», затем выберите нужный пункт во всплывающем меню «Указатель мыши».
    • Для задания режима, в котором указатель мыши следует за курсором VoiceOver, выберите «Следует за курсором VoiceOver».
    • Для задания режима, в котором курсор VoiceOver следует за указателем мыши, выберите «Перемещает курсор VoiceOver».

    Использование Утилиты VoiceOver

    Утилита VoiceOver представляет собой программу, которая используется для индивидуальной настройки стандартных параметров VoiceOver для максимального удобства. Она предоставляет удобный для перемещения список разделов для задания настроек и параметров.

    При выборе раздела в левой части окна Утилиты VoiceOver, возможные параметры отображаются в правой части. Для некоторых категорий параметры расположены на нескольких панелях, которые перечислены вдоль верхней или правой части. Перемещение по разделам и панелям осуществляется с помощью мыши, клавиш со стрелками, меню «Вид» или сочетаний клавиш.

    Строка меню можно найти команд для экспорта и импорта настроек, задания переносных настроек и восстановления первоначальных значений всех или отдельных настроек.

    Каждый раздел или панель содержит кнопку «Справка» в правом нижнем углу окна. При нажатии этой кнопки открывается страница интерактивной справки VoiceOver с пояснением по каждому параметру этого раздела или панели.

    Как открыть Утилиту VoiceOver Utility

    • Выберите меню Apple > «Системные настройки» > «Универсальный доступ», затем нажмите «Утилита VoiceOver».
    • Включите VoiceOver, нажав клавиши Command-F5, затем, удерживая клавиши Control и Option (клавиши VO), нажмите клавишу F8.

    Добавление адреса электронной почты — Поддержка

    Хотите применять на своём домене пользовательский адрес электронной почты, например [email protected]?

    WordPress.com предлагает Professional Email — доступное и надёжное хостинговое решение для электронной почты, которое позволяет легко управлять почтой прямо в учётной записи WordPress.com. Мы также предлагаем и другие описанные ниже решения, которые помогут удовлетворить ваши потребности в услугах электронной почты.

    Чтобы добавить электронную почту в свой домен, убедитесь в наличии пользовательского домена. Затем перейдите в раздел Платные услуги → Электронная почта, чтобы просмотреть и выбрать решение для электронной почты. Цена для каждого решения будет показана в вашей валюте.

    Содержание

    Зачем мне нужно пользовательское решение для электронной почты?

    Производите впечатление профи

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

    Выстройте доверие

    Создайте надёжный образ для клиентов. Повысьте свой рейтинг открытия электронной почты, а вместе с этим и свои шансы попасть во входящую почту получателя.

    Укрепите свой бренд

    Особый адрес электронной почты укрепляет ваш бренд с каждым отправленным письмом. Клиенты с лёгкостью будут узнавать ваш адрес электронной почты и домен.

    📌

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

    ↑ Содержание ↑

    Professional Email

    Professional Email — это идеальный вариант недорогого и надёжного хостингового решения для электронной почты с простым управлением прямо в учётной записи WordPress.com. Добавьте его в свой домен и воспользуйтесь преимуществами следующих функций:

    • Отправка и получение сообщений электронной почты с помощью пользовательского домена.
    • Электронная почта, календарь и управление контактами.
    • Импорт существующих писем и контактов одним щелчком мыши.

    Перейдите в раздел Платные услуги → Электронная почта, чтобы узнать цену для одного почтового ящика. Чтобы получить более подробную информацию, см. Добавление Professional Email на сайт. Обратите внимание, что после активации Professional Email другие службы электронной почты, например Google Workspace, перестанут работать.

    ↑ Содержание ↑

    Google Workspace (ранее — G Suite)

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

    • Если вы регистрируете домен через WordPress.com, можете одновременно приобрести учётную запись Google Workspace.
    • Вы также можете добавить Google Workspace к уже зарегистрированному или подключённому домену.
    • Если у вас уже есть учётная запись Google Workspace, вы можете подключить её к своему пользовательскому домену.

    ↑ Содержание ↑

    Переадресация электронных писем

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

    • Переадресация электронных писем даёт возможность применять в вашем электронном адресе пользовательское доменное имя.
    • Все входящие письма будут пересылаться на выбранный вами личный адрес, а все ответы будут оправляться с личного адреса электронной почты.
    • В отличие от Professional Email и Google Workspace, переадресация электронных писем не работает вместе с хостинговой службой для электронной почты.
    • В нашем руководстве по поддержке при работе с переадресацией электронных писем объяснено, как её настроить.

    ↑ Содержание ↑

    Другие поставщики электронной почты

    Если управление вашим доменным именем и настройками DNS осуществляется в WordPress.com, вы можете приобрести хостинг электронной почты у другого поставщика и подключить к нему свой домен. Мы не рекомендуем конкретных поставщиков. Далее представлены инструкции по использованию нескольких популярных поставщиков:

    • Zoho Mail (цены варьируются; включает в себя поддержку; по отзывам наших пользователей, это самое удобное бесплатное решение)
      • Получите учётную запись для хостинга электронной почты Zoho здесь
      • Подключите учётную запись электронной почты Zoho к своему пользовательскому домену
    • Microsoft Office 365 (цены варьируются; включает в себя поддержку)
      • Получите учётную запись Office 365 здесь
      • Для подключения тарифного плана Microsoft 365 Business требуется регистрация
      • Подключите учётную запись Office 365 к своему пользовательскому домену
    • Другое
      • Создайте учётную запись для хостинга электронной почты у другого поставщика
      • Подключите свою учётную запись для хостинга электронной почты к пользовательскому домену

    Разнообразие тарифных планов и ценовых предложений

    • Бесплатно

      Оптимальный вариант для студентов

    • Personal

      Оптимальный вариант для представления своего хобби

    • Premium

      Оптимальный вариант для фрилансеров

    • Business

      Оптимальный вариант для малых предприятий

    Ваша оценка:

    Защита информации от утечки, DLP-система Infowatch Traffic Monitor

    Обзор продукта

    Обзор продукта

    Возможности

    Технологии

    Характеристики

    Интеграции

    Расследование инцидентов

    InfoWatch Traffic Monitor – DLP-система, которая предотвращает утечки конфиденциальной информации на основе полноценного контентного анализа информационных потоков.

    InfoWatch Traffic Monitor надежно работает под большими нагрузками на сотнях тысяч рабочих мест не только в режиме мониторинга, но и блокировки. Чтобы минимизировать проблему ложных срабатываний, традиционную для всех DLP, InfoWatch Traffic Monitor сделал ставку на развитие технологий анализа контента и за 15+ лет продуктовой жизни стал технологическим лидером среди аналогов.

    Система «ловит» сложные текстовые и графические объекты даже в случае, если нарушитель сумел значительно видоизменить их и ухитрился замаскировать свои действия. Благодаря многомерному анализу содержания, InfoWatch Traffic Monitor понимает, о какой информации идет речь. Это облегчает сотруднику службы информационной безопасности неблагодарную работу с ложноположительными срабатываниями.

    Читать подробнее

    Чем полезна DLP-система InfoWatch Traffic Monitor

    Выявляет и блокирует утечки конфиденциальной информации любого формата

    Помогает соответствовать требованиям регулятора и отраслевым стандартам

    Позволяет распознать мошеннические схемы, злой умысел и недобросовестных сотрудников

    Еще больше возможностей для служб ИБ

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

    Сценарии использования

    InfoWatch Traffic Monitor исходит из требований бизнеса и решает конкретные задачи информационной безопасности

    Уметь остановить, а не только контролировать.

    Если DLP-система оповещает о попытках передачи конфиденциальных данных без возможности автоматического предотвращения, нельзя назвать ее достаточной.

    InfoWatch Traffic Monitor может устанавливаться в разрыв и позволяет блокировать передачу данных по максимальному числу каналов. Система поймает конфиденциальные данные, отправляемые за пределы организации, и не допустит, чтобы они «гуляли» по сетевым папкам и папкам FTP-серверов внутри инфраструктуры компании.

    Работа по всем видам каналов утечки информации

    Чем больше каналов контролирует DLP, тем полнее защита. InfoWatch Traffic Monitor контролирует как стандартные каналы, так и уникальные. Среди них: корпоративная и веб-почта, мессенджеры, облачные хранилища, сетевые папки, FTP, терминальные соединения, локальные и сетевые принтеры, съемные носители.

    InfoWatch Traffic Monitor поддерживает каналы передачи информации даже для случаев, когда компания пользуется проприетарными приложениями. Для этого разработан открытый API и возможность не только перехватывать такой трафик, но и формировать политики с учетом ИТ-инфраструктуры конкретной компании.

    Работа по всем видам каналов утечки информации

    Чем больше каналов контролирует DLP, тем полнее защита. InfoWatch Traffic Monitor контролирует как стандартные каналы, так и уникальные. Среди них: корпоративная и веб-почта, мессенджеры, облачные хранилища, сетевые папки, FTP, терминальные соединения, локальные и сетевые принтеры, съемные носители.

    InfoWatch Traffic Monitor поддерживает каналы передачи информации даже для случаев, когда компания пользуется проприетарными приложениями. Для этого разработан открытый API и возможность не только перехватывать такой трафик, но и формировать политики с учетом ИТ-инфраструктуры конкретной компании.

    Интеграции с бизнес-системами

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

    InfoWatch Traffic Monitor интергируется с ERP, CRM, СЭД-системами: в соответствии с политиками безопасности обработает данные и автоматически актуализирует те из них, которые надо защищать.

    InfoWatch Traffic Monitor передает инциденты ИБ в SIEM- и IRM-системы, чтобы офицер безопасности мог обработать их в общем потоке, видеть полную картину и сопоставлять события из разных систем.

    InfoWatch Traffic Monitor интергируется с сетевыми устройствами, чтобы снизить трудоемкость внедрения DLP и общую стоимость владения системой.

    Читать про интеграции

    Визуальная аналитика, чтобы говорить на языке бизнеса

    С внедрением DLP в распоряжении компании оказывается огромный массив данных. Инструмент визуальной аналитики заставляет эти данные «говорить», чтобы увидеть процессы и коммуникации в компании с совершенно иной стороны.

    Для задач ИБ, в которых известно, что искать, такой инструмент поможет быстро получить наглядный срез данных. Например, за пару секунд понять, как перемещался файл по компании и на каких сотрудников могла распространиться информация из него.

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

    Специальный инструмент визуального анализа данных, хранящихся в InfoWatch Traffic Monitor, может объять коммуникации всей компании, отобразить их на графе связей и с помощью единой системы фильтров выдавать различные срезы данных в понятном виде. Такая картина мира никому в вашей компании еще не открывалась!

    Читать больше

    Визуальная аналитика, чтобы говорить на языке бизнеса

    С внедрением DLP в распоряжении компании оказывается огромный массив данных. Инструмент визуальной аналитики заставляет эти данные «говорить», чтобы увидеть процессы и коммуникации в компании с совершенно иной стороны.

    Для задач ИБ, в которых известно, что искать, такой инструмент поможет быстро получить наглядный срез данных. Например, за пару секунд понять, как перемещался файл по компании и на каких сотрудников могла распространиться информация из него.

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

    Специальный инструмент визуального анализа данных, хранящихся в InfoWatch Traffic Monitor, может объять коммуникации всей компании, отобразить их на графе связей и с помощью единой системы фильтров выдавать различные срезы данных в понятном виде. Такая картина мира никому в вашей компании еще не открывалась!

    Читать больше

    Чек-лист 10 вопросов вендору DLP-системы

    • какие критерии учитывать при выборе DLP
    • какими вопросами можно проверить производителя DLP

    Скачать

    Скачать материал

    Фамилия

    Согласен на обработку персональных данных

    CAPTCHA

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

    «Пока читаешь или спишь — как бы не сидишь в тюрьме»

    В заключении делать особенно нечего, и осужденные начинают много читать — книги, письма, самоучители, кодексы. Но даже в этом они ограничены: книги сложно получить, администрация может их отобрать, свободное время могут сократить. ОВД-Инфо, Bookmate и «Горький» создали проект о том, что и как читают заключенные в СИЗО и колониях.

    Предполагается, что человек в колонии должен встать на путь исправления. Помогать ему в этом должен отдел по воспитательной работе, который заведует в том числе и тюремной библиотекой. Помимо библиотеки, по закону заключенный может получать книги в передачах, по почте, заказывать их в торговых сетях, подписываться на газеты и журналы. В 2016 году Минюст даже разрешил использовать в колониях электронные книги.

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

    Донцова, экстремизм, поднятие целины: какие книги попадают в библиотеки

    Олег Навальный был осужден по делу «Ив Роше» и в колонии написал книгу «3 ½. С арестантским уважением и теплом». Во время заключения он работал в библиотеке, поэтому был хорошо знаком с существующим ассортиментом книг:

    «Оказалось, что на 60% библиотека состоит из книг про ВОВ, поднятие целины и покорение Крайнего Севера советскими студентами, а временами и геологами. Судя по всему, когда районная библиотека делилась фондами с лагерной, она отдала самый нечитаемый трэш <…> Больше всего меня удивили самоучители, которых в книжной массе оказалось огромное количество — набрался целый стеллаж. Были пособия по собиранию грибов, выращиванию цветов, разведению кроликов, художественной ковке, мастерству сантехника, основам укладки черепицы, работе с силовыми агрегатами и многое другое».

    Так обстоят дела в большинстве колоний. По закону библиотека должна формироваться по норме: пять книг на одного заключенного. При этом запрещены только книги «экстремистского, эротического и порнографического содержания». На практике все зависит от конкретного учреждения.

    У администраций нет обязанности следить за регулярным обновлением библиотеки, но иногда они все же пополняются — скорее, случайным образом. Чаще всего книги в колонию передают местные библиотеки, иногда — чиновники, общественные организации и прихожане храмов. Случаются казусы: например, в саратовской ИК-10 священники, которые приехали передать собранные прихожанами книги, заодно проверили на экстремизм уже имевшиеся в библиотеке.

    Правозащитники регулярно пытаются передать книги в колонии, но часто сталкиваются с противодействием администрации, которая и сама не понимает, что можно взять, а что не стоит.

    «С некоторыми книгами и авторами просто смешные истории бывали. Например, с Донцовой. Во время одной из передач нам говорят: „Донцову нельзя, она так подробно расписывает криминальный сюжет, что прям учебник. Мы не возьмем точно“. В другой колонии эту же Донцову с радостью приняли со словами: „Ее же нет в списке экстремистской литературы“. Помню еще историю, когда в одной колонии отказывались брать книги по психологии, говорили: „У них и так с психикой не очень, проблемы всякие психологические, зачем их еще больше раздражать“», — рассказывал «Горькому» Валерий Сергеев, заместитель директора Центра содействия реформе уголовного правосудия, который собирает книги для учреждений пенитенциарной системы.

    Правозащитнику Сергею Мохнаткину, который сам несколько лет провел в колониях и изоляторах, после освобождения в 2012 году удалось вместе с другими московскими правозащитниками передать книги в несколько московских СИЗО.

    «Когда Медведев Путина выдвинул в президенты, Москва практически вся повалила за границу, средний класс, начитанный, — рассказывает Мохнаткин. — И вот они книги не везли, они их оставляли в городской библиотеке. Эти книги были за балансом и их могли бесплатно отдавать».

    Библиотека разрешила правозащитникам забрать книги из частных собраний. Изоляторы приняли книги, но, как рассказывает Мохнаткин, не все были им рады: «Многие сопротивляются — они стараются ничего не брать из рук правозащитников или бывших заключенных под разными предлогами. Кто-то даже юридическую литературу не пропускает».

    Самый стабильный источник пополнения библиотеки — сами заключенные. При себе можно иметь только десять книг и журналов, лишние могут изъять во время обыска. Поэтому прочитанное чаще всего сдают в библиотеку.

    «Я и сам пополнил библиотеку на несколько сотен экземпляров, — говорит Олег Навальный. — Но тут важно понимать, что любая книга в зоне по сути в библиотеке, а где же ещё? Поэтому пополняется она за счёт книг, которые заключенные всеми способами затягивают в колонию — кто через передачки, кто через свидания».

    «Был март 2018 года, и подходило время этапирования. А у меня была куча книг непрочитанных на очереди, штук 20 где-то, целая сумка. Вот я их и решил дочитать на этапе и в лагере. Сокамерник сразу засомневался, что мне удастся все это допереть, и посоветовал сдать в камеру хранения, чтобы забрали родственники. Я этого делать не стал, не желая заставлять своих таскаться в СИЗО с очередными тяжелыми баулами и рассчитывая на то, что раз книга прошла проверку цензуры, то ее должны оставить при тебе. Кроме того, правила внутреннего распорядка колонии не запрещали иметь при себе книг, а тем более образовательную литературу. А у меня как раз в основном такая и собралась!

    Когда заказали на этап и все упаковал, получились две здоровые спортивные сумки. Одна набита материалами дела и барахлом с продуктами, другая — только книги.

    Несмотря на то, что я все предварително укрепил и подшил, все равно сумка безбожно рвалась. Первый раз уже в сборочной камере перед выходом с Бутырки: отошла молния сверху. Второй прикол был при пересадке в „столыпин“. Обычных арестантов называют по фамилии и по одному спокойно дают перейти из автозака в поезд. Но мне ФСИНовцы устроили подляну.

    Вот ФСИНовец и объявляет мое имя и добавляет что-то типа: „Внимание! Специальный учет: экстремизм и склонность к нападению!“ И вертухай с автоматом заковывает меня в наручники. Я говорю: „Вы чего, прикалываетесь? Как я тяжеленные сумки перетащу в поезд в наручниках? У меня тут книжки и материалы дела, ё-моё!“ Но в ответ меня лишь поторопили, мол, не задерживай очередь. Лишь каким-то чудом удалось протиснуться в двери и не растерять все добро по дороге. Ну, и в Нижнем Новгороде, когда выпрыгивали из поезда, у сумки оторвалась лямка. Кое-как допер это все до СИЗО, где уже перезашил все как следует. Но усилия были напрасны. В колонии все книги изъяли на склад, откуда несмотря на все заявления и просьбы мне их так никто и не передал. Только по выходе из ИК вернули».

    Журналист Александр Соколов, осужденный по делу инициативной группы проведения референдума «За ответственную власть».

    Посылки, передачи, свидания: как добыть книгу в колонию

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

    Не все книги в библиотеке вообще можно читать: «Есть те, кто использует книги не по назначению — они их могут скурить, из твердых обложек могут сделать полочки», — рассказывает Владимир Тимошенко, отбывавший наказание с 2010 по 2018 год, в том числе за пост во «ВКонтакте».

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

    В колонии и тюрьмы книги можно отправлять письмами первого класса, которые по правилам Почты России могут весить до 500 граммов. «На письма в УИК ограничений нет, — пишет Ольга Романова. — Более тяжелые книги разрывают на части, чтобы их приняли как письмо. Я сочла бы это за скверный анекдот, если б не столкнулась с данной практикой лично».

    На практике же все снова зависит от колонии. Олегу Навальному сначала не давали заказывать книги, но после того, как он оспорил это в суде, разрешили делать заказы в торговых сетях и даже получать легкие книжки в письмах.

    Владимир Тимошенко рассказывает, что в петербургской ИК-7 заказ книг связан с большой волокитой и проще с этим не связываться. В колонии, в которой отбывал срок фигурант «Болотного дела» Алексей Гаскаров, начальство предпочитало делать вид, что книги переданы как обычная передача: «Ты получаешь книги, они дофига весят, а это списывается из веса твоей передачи. Всего 20 килограмм дается на два месяца, и растерять лишние пять килограмм на книги — не очень удобно».

    Получить книги можно на длительных свиданиях и через адвоката. Библиотеки в изоляторах чаще всего маленькие, а взять литературу можно только через сотрудников библиотеки. Они ходят по камерам, приносят книги на выбор либо могут поискать что-то по заказу заключенного.

    Закон разрешает заключенным пользоваться электронными книгами, но на практике это редко кому-то удается. «Перед моим освобождением их только-только разрешили, но не было установлено, какую книгу можно, какую нельзя, можно ли с выходом в интернет. И поэтому, хоть официально и было разрешено, неофициально их не пропускали», — рассказывает Роман Шорин, отбывавший срок в разных колониях Санкт-Петербурга и Ленобласти.

    Гаскарову тоже не удалось получить электронную книгу: «У нас их давали по особой привилегии, и для меня такая история была закрыта, потому что я неблагонадежный сиделец».

    «Зато учеба давала мне возможность иметь неограниченное количество учебников, а главное — электронную книгу. Сначала мне прислали электронную книгу из института, но она была ужасная, читать на ней было решительно невозможно. И тогда я попросил купить мне нормальную электронную книгу, чтобы все тот же Кирилл (один из адвокатов Навального — ОВД-Инфо) записал на нее все нужные книги, отвез в институт, а оттуда ее бы переправили ментам.

    Приходит мне Kindle, и я обнаруживаю, что в нем есть вайфай. Бро вообще хотел купить модель со встроенной симкой, и тогда я был бы на постоянном амазоновском интернете, но перепутал. В итоге интернет у меня все-таки появился, но довольно ограниченный. Попросить блатных поделиться сигналом я не мог — они сдали бы меня ментам, потому что от администрации было четкое указание: в моей камере не должно быть ничего. Пришлось тайком договариваться с надежным чуваком, чтобы он раздавал мне интернет в строго определенное время. Ловился он очень плохо и только в одной точке на стене: приходилось держать Kindle правой рукой под определенным углом, а левой печатать, не больше двух-трех предложений в одном сообщении, иначе все сбивалось. В общем, морока страшная, но все-таки интернет. Мне могли написать, если что-то срочное случилось, и я сам тоже мог написать.

    Книжку нужно было отдавать на подзарядку ментам, и в какой-то момент они просекли, что там есть вайфай. Отдали старую книжку, я ее тут же сломал и потребовал вернуть новую. Опера говорят: „Оказывается, там есть интернет — мы ее отдать не можем!“ Я говорю: „Окей, тогда я сейчас пишу пост о том, как прекрасно вы мне заряжали книжку, и я год здесь пользовался интернетом“. Они посидели, подумали и говорят: „Нет, так будет не классно“. Я говорю: „Тогда отдавайте! А я не буду пользоваться интернетом“. Они говорят: „Ну хорошо“. Они, конечно, все поняли, но если я столько времени сидел в интернете и ничего не произошло, то, наверное, и не произойдет. Получается win — win».

    Олег Навальный, «3½. С арестантским уважением и теплом»

    Арабская вязь, карты, пошлые картинки: как устроена цензура за решеткой

    В колониях и СИЗО цензура существует официально: осужденные не могут получать и хранить издания, которые пропагандируют «войну, разжигание национальной и религиозной вражды, культ насилия или жестокости». Нельзя получить порнографические издания. Но на практике за порнографию могут принять что угодно: например, из выписываемых Гаскаровым журналов специально вырывали рекламу с «какими-то пошлыми, как им казалось, картинками».

    Помимо правил, зафиксированных в УИК, есть и внутренние инструкции для служебного пользования. По закону такие инструкции не могут быть засекречены для лиц, чьи права они ограничивают, но заключенным знакомиться с такими документами обычно не дают. Судя по всему, именно в них зафиксирован запрет заключенным получать книги на иностранном языке или, например, книги, в которых есть географические карты.

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

    «Стараются не допустить поступления информации к заключенным — во всяком случае, таким, как я, — рассказывает Сергей Мохнаткин. — Я выписывал „Новую“ и „Независимую“, но мне их не давали читать. Они считаются бунтарскими газетами или желтой прессой, и сотрудники в открытую пытаются помешать распространению информации, которая там публикуется. Мне по 5–6 раз приходилось просить, чтобы мне газеты принесли, иной раз через 2–3 недели только приносили. Был случай, и не один, когда часть газет вообще не выдали, сколько я ни писал жалоб».

    Визуальный голод, «Сталкер», полтора часа перед сном: что, почему и как читают заключенные

    «У книги, конечно, важная роль — пока читаешь или спишь, как бы не сидишь в тюрьме», — говорит Олег Навальный. В колониях и СИЗО вариантов досуга не так много, и многие из них связаны с чтением — это и книги, и переписка, и обучение.

    «Даже когда попадаешь в какие-то места, где у тебя нет своих книг и доступа в библиотеку, — например, карантин, — читаешь то, что там есть, какую-нибудь хрень криминальную, просто чтобы время убить, — рассказывает Алексей Гаскаров. — Даже самые какие-то спайсовые головы начинают тоже читать рано или поздно, просто потому что они там не знают, чем себя занять».

    Гаскаров провел в СИЗО и колонии три с половиной года и прочитал за это время около 200 книг. Навальный за тот же срок прочитал больше тысячи книг.

    Большинство заключенных читают детективы, любовные романы, фэнтези и фантастику. Владимир Тимошенко рассказывает, что в колониях, где он отбывал наказание, постоянно искали «S. T.A.L.K.E.R.» и почему-то любили стихи Ахматовой.

    Иногда в библиотеках колоний попадаются книги, связанные с тюрьмой. Сергей Мохнаткин, к примеру, находил там воспоминания адвоката советских диссидентов Дины Каминской, воспоминания диссидентки, второй жены академика Сахарова Елены Боннэр, книгу Льва Трахтенберга «На нарах с дядей Сэмом» об американской пенитенциарной системе.

    «Понятно, что там суперпопулярно читать книги про тюрьму, все читают какие-нибудь „Колымские рассказы“, Солженицына. Есть еще такая книга странная, я ее там для себя открыл, и она даже оказалась немного полезной — „Черная свеча“. Там 30-е или 40-е годы, лагеря. Мне эту книжку посоветовал какой-то опер из Центра „Э“, он сам работал чуваком, которого внедряли в камеры иногда, он сидел с другими заключенными, чтобы информацию получить. И он эту книжку читал.

    Она ужасно написана, очень сложный язык, но в целом оказалась полезна для понимания, куда ты попал, и правил этих неких, которые там уже тоже многие не понимают, но соблюдают, а это такой, ну не первоисточник, но там много про это есть. Основное, почему читаешь про тюрьму, — это то, что ты сам там находишься и у тебя вовлеченность больше».

    Алексей Гаскаров, в прошлом осужденный по «Болотному делу».

    Выбор книг часто связан со стадией уголовного дела: в СИЗО, в ожидании суда, заключенные выбирают книги попроще: «Больше уделяешь внимание тому, чтобы контролировать весь этот процесс. И чтобы мозг отдыхал, берешь такую легкую литературу», — говорит Тимошенко.

    В колонии — наоборот. «Когда уже было ясно, что ничего не изменить, я читал какие-то более сложные вещи, — рассказывает Гаскаров. — Там я читал такие тексты — Хайдеггера какого-нибудь, — от которых сейчас, если буду читать, я мало что запомню. Читал довольно много экзистенциалистов: Сартра, Камю».

    «Я в СИЗО стал довольно много читать книги про искусство, с картинами каких-то художников, про направления в искусстве. Это мне было несвойственно раньше и как будто бы было связано с тем, что там визуальный контекст довольно ограниченный.

    Вокруг тебя все время очень визуально однородная картинка, как правило, очень убогая — в СИЗО вообще ты ничего не видишь кроме четырех стен, в колонии тоже, несмотря на то, что можно выходить на улицу, там дома какие-то — и все, мало какой-то растительности. Из-за этого рано или поздно начинается просто визуальный голод. Поэтому в колонии очень популярны журналы про путешествия, про страны разные — картинки все смотрят».

    Алексей Гаскаров, в прошлом осужденный по «Болотному делу».

    Иногда сотрудники колоний не мешают заключенным читать — в свободное время, во время тихого часа, вместо похода в столовую, даже на рабочем месте, когда нет работы. К примеру, Денис Тимохин, сотрудник «Руси сидящей», отбывавший наказание в колонии в Нижнем Тагиле, работал в подразделении, которое занималось сбором статистики по колонии:

    «Там зэки выполняют работу, которую сотрудники ФСИН из-за лени не способны и не хотят выполнять. Это учет прибывших, убывших, питания — вся статистика, все, чем дышит колония. И туда на флэшке можно было занести хоть что — у нас была библиотека».

    Но, как всегда, все зависит от колонии. Практически всегда не везет заключенным, получившим взыскание — например, попавшим в штрафной изолятор или помещение камерного типа.

    Сергей Мохнаткин рассказывает, что в колонии, где он отбывал наказание, в ШИЗО позволяли читать только полтора часа перед сном: «Это совершенно нелогично — я, например, пенсионер и имею полное право не работать, но у меня нет возможности днем почитать. Куда я должен девать эти восемь часов? Это психологические пытки — стараются сделать так, чтобы тебе было нечего делать».

    Слова Мохнаткина подтверждает Олег Навальный: «В изоляторе с книгами сложнее, так как там пытаются зэка наказать и ограничить примерно во всём. Книги выдают в ограниченном количестве и в определенные дни, а иногда, например, библиотекарь не приходит или неожиданно запрещают книги в твёрдом переплёте. На киче (в колонии — ОВД-Инфо) книга — это единственное, чем ты можешь себя занять, и если в этом времяпрепровождении тебя ограничивают, это сильно сказывается на бодрости твоего духа».

    Быстрый старт / Методология / БЭМ

    Введение

    БЭМ (Блок, Элемент, Модификатор) — компонентный подход к веб-разработке. В его основе лежит принцип разделения интерфейса на независимые блоки. Он позволяет легко и быстро разрабатывать интерфейсы любой сложности и повторно использовать существующий код, избегая «Copy-Paste».

    Содержание

    • Блок

    • Элемент

    • Когда создавать блок, когда — элемент?

    • Модификатор

    • Микс

    • Файловая структура

    Блок

    Функционально независимый компонент страницы, который может быть повторно использован. В HTML блоки представлены атрибутом class.

    Особенности:

    • Название блока характеризует смысл («что это?» — «меню»: menu, «кнопка»: button), а не состояние («какой, как выглядит?» — «красный»: red, «большой»: big).

    Пример

    <!-- Верно.  Семантически осмысленный блок `error` -->
    <div></div>
    <!-- Неверно. Описывается внешний вид -->
    <div></div>
    
    • Блок не должен влиять на свое окружение, т. е. блоку не следует задавать внешнюю геометрию (в виде отступов, границ, влияющих на размеры) и позиционирование.

    • В CSS по БЭМ также не рекомендуется использовать селекторы по тегам или id.

    Таким образом обеспечивается независимость, при которой возможно повторное использование или перенос блоков с места на место.

    Принцип работы с блоками

    Вложенность
    • Блоки можно вкладывать друг в друга.

    • Допустима любая вложенность блоков.

    Пример

    <!-- Блок `header` -->
    <header>
        <!-- Вложенный блок `logo` -->
        <div></div>
        <!-- Вложенный блок `search-form` -->
        <form></form>
    </header>
    

    Элемент

    Составная часть блока, которая не может использоваться в отрыве от него.

    Особенности:

    • Название элемента характеризует смысл («что это?» — «пункт»: item, «текст»: text), а не состояние («какой, как выглядит?» — «красный»: red, «большой»: big).

    • Структура полного имени элемента соответствует схеме: имя-блока__имя-элемента. Имя элемента отделяется от имени блока двумя подчеркиваниями (__).

    Пример

    <!-- Блок `search-form` -->
    <form>
        <!-- Элемент `input` блока `search-form` -->
        <input>
        <!-- Элемент `button` блока `search-form` -->
        <button>Найти</button>
    </form>
    

    Принципы работы с элементами

    • Вложенность

    • Принадлежность

    • Необязательность

    Вложенность
    • Элементы можно вкладывать друг в друга.

    • Допустима любая вложенность элементов.

    • Элемент — всегда часть блока, а не другого элемента. Это означает, что в названии элементов нельзя прописывать иерархию вида block__elem1__elem2.

    Пример

    <!--
        Верно. Структура полного имени элементов соответствует схеме:
        `имя-блока__имя-элемента`
    -->
    <form>
        <div>
            <input>
            <button>Найти</button>
        </div>
    </form>
    <!--
        Неверно. Структура полного имени элементов не соответствует схеме:
        `имя-блока__имя-элемента`
    -->
    <form>
        <div>
            <!--
                Рекомендуется:
                `search-form__input` или `search-form__content-input`
            -->
            <input>
            <!--
                Рекомендуется:
                `search-form__button` или `search-form__content-button`
            -->
            <button>Найти</button>
        </div>
    </form>
    

    Имя блока задает пространство имен, которое гарантирует зависимость элементов от блока (block__elem).

    Блок может иметь вложенную структуру элементов в DOM-дереве:

    Пример

    <div>
        <div>
            <div>
                <div></div>
            </div>
        </div>
    </div>
    

    Однако эта же структура блока в методологии БЭМ всегда будет представлена плоским списком элементов:

    Пример

    .block {}
    .block__elem1 {}
    .block__elem2 {}
    .block__elem3 {}
    

    Это позволяет изменять DOM-структуру блока без внесения правок в коде каждого отдельного элемента:

    Пример

    <div>
        <div>
            <div></div>
        </div>
        <div></div>
    </div>
    

    Структура блока меняется, а правила для элементов и их названия остаются прежними.

    Принадлежность

    Элемент — всегда часть блока и не должен использоваться отдельно от него.

    Пример

    <!-- Верно. Элементы лежат внутри блока `search-form` -->
    <!-- Блок `search-form` -->
    <form>
        <!-- Элемент `input` блока `search-form` -->
        <input>
        <!-- Элемент `button` блока `search-form` -->
        <button>Найти</button>
    </form>
    <!-- Неверно.  Элементы лежат вне контекста блока `search-form` -->
    <!-- Блок `search-form` -->
    <form>
    </form>
    <!-- Элемент `input` блока `search-form` -->
    <input>
    <!-- Элемент `button` блока `search-form` -->
    <button>Найти</button>
    
    Необязательность

    Элемент — необязательный компонент блока. Не у всех блоков должны быть элементы.

    Пример

    <!-- Блок `search-form` -->
    <div>
        <!-- Блок `input` -->
        <input>
        <!-- Блок `button` -->
        <button>Найти</button>
    </div>
    

    Когда создавать блок, когда — элемент?

    Создавайте блок

    Если фрагмент кода может использоваться повторно и не зависит от реализации других компонентов страницы.

    Создавайте элемент

    Если фрагмент кода не может использоваться самостоятельно, без родительской сущности (блока).

    Исключение составляют элементы, реализация которых для упрощения разработки требует разделения на более мелкие части — подэлементы.  В БЭМ-методологии нельзя создавать элементы элементов. В подобном случае вместо элемента необходимо создавать служебный блок.

    Модификатор

    Cущность, определяющая внешний вид, состояние или поведение блока либо элемента.

    Особенности:

    • Название модификатора характеризует внешний вид («какой размер?», «какая тема?» и т. п. — «размер»: size_s, «тема»: theme_islands), состояние («чем отличается от прочих?» — «отключен»: disabled, «фокусированный»: focused) и поведение («как ведет себя?», «как взаимодействует с пользователем?» — «направление»: directions_left-top).

    • Имя модификатора отделяется от имени блока или элемента одним подчеркиванием (_).

    Типы модификаторов

    Булевый
    • Используют, когда важно только наличие или отсутствие модификатора, а его значение несущественно. Например, «отключен»: disabled. Считается, что при наличии булевого модификатора у сущности его значение равно true.

    • Структура полного имени модификатора соответствует схеме:

      • имя-блока_имя-модификатора;

      • имя-блока__имя-элемента_имя-модификатора.

    Пример

    <!-- Блок `search-form` имеет булевый модификатор `focused` -->
    <form>
        <input>
        <!-- Элемент `button` имеет булевый модификатор `disabled` -->
        <button>Найти</button>
    </form>
    
    Ключ-значение
    • Используют, когда важно значение модификатора. Например, «меню с темой оформления islands»: menu_theme_islands.

    • Структура полного имени модификатора соответствует схеме:

      • имя-блока_имя-модификатора_значение-модификатора;

      • имя-блока__имя-элемента_имя-модификатора_значение-модификатора.

    Пример

    <!-- Блок `search-form` имеет модификатор `theme` со значением `islands` -->
    <form>
        <input>
        <!-- Элемент `button` имеет модификатор `size` со значением `m` -->
        <button>Найти</button>
    </form>
    <!--
        Невозможно одновременно использовать два одинаковых модификатора
        с разными значениями
    -->
    <form>
        <input>
        <button>
            Найти
        </button>
    </form>
    

    Принципы работы с модификаторами

    Модификатор нельзя использовать самостоятельно

    С точки зрения БЭМ-методологии модификатор не может использоваться в отрыве от модифицируемого блока или элемента. Модификатор должен изменять вид, поведение или состояние сущности, а не заменять ее.

    Пример

    <!-- Верно. Блок `search-form` имеет модификатор `theme` со значением `islands`-->
    <form>
        <input>
        <button>Найти</button>
    </form>
    <!-- Неверно. Отсутствует модифицируемый класс `search-form` -->
    <form>
        <input>
        <button>Найти</button>
    </form>
    

    Зачем в именах модификаторов и элементов указывать имя блока?

    Микс

    Прием, позволяющий использовать разные БЭМ-сущности на одном DOM-узле.

    Миксы позволяют:

    • совмещать поведение и стили нескольких сущностей без дублирования кода;

    • создавать семантически новые компоненты интерфейса на основе имеющихся.

    Пример

    <!-- Блок `header` -->
    <div>
        <!-- К блоку `search-form` примиксован элемент `search-form` блока `header`-->
        <div></div>
    </div>
    

    В данном примере мы совместили поведение и стили блока search-form и элемента search-form блока header. Такой подход позволяет нам задать внешнюю геометрию и позиционирование в элементе header__search-form, а сам блок search-form оставить универсальным. Таким образом, блок можно использовать в любом другом окружении, потому что он не специфицирует никакие отступы. Это позволяет нам говорить о его независимости.

    Файловая структура

    Принятый в методологии БЭМ компонентный подход применяется и к организации проектов в файловой структуре. Реализации блоков, элементов и модификаторов делятся на независимые файлы-технологии, что позволяет нам подключать их опционально.

    Особенности:

    • Один блок — одна директория.

    • Имена блока и его директории совпадают. Например, блок header — директория header/, блок menu — директория menu/.

    • Реализация блока разделяется на отдельные файлы-технологии. Например, header.css, header.js.

    • Директория блока является корневой для поддиректорий соответствующих ему элементов и модификаторов.

    • Имена директорий элементов начинаются с двойного подчеркивания (__). Например, header/__logo/, menu/__item/.

    • Имена директорий модификаторов начинаются с одинарного подчеркивания (_). Например, header/_fixed/, menu/_theme_islands/.

    • Реализации элементов и модификаторов разделяются на отдельные файлы-технологии. Например, header__input.js, header_theme_islands.css.

    Пример

    search-form/                           # Директория блока search-form
        __input/                           # Поддиректория элемента search-form__input
            search-form__input.css         # Реализация элемента search-form__input
                                           # в технологии CSS
            search-form__input.js          # Реализация элемента search-form__input
                                           # в технологии JavaScript
        __button/                          # Поддиректория элемента search-form__button
            search-form__button. css
            search-form__button.js
        _theme/                            # Поддиректория модификатора
                                           # search-form_theme
            search-form_theme_islands.css  # Реализация блока search-form, имеющего
                                           # модификатор theme со значением islands
                                           # в технологии CSS
            search-form_theme_lite.css     # Реализация блока search-form, имеющего
                                           # модификатор theme со значением lite
                                           # в технологии CSS
        search-form.css                    # Реализация блока search-form
                                           # в технологии CSS
        search-form.js                     # Реализация блока search-form
                                           # в технологии JavaScript
    

    Такая файловая структура позволяет легко поддерживать и повторно использовать код.

    Разветвленная файловая структура предполагает, что в production код будет собираться в общие файлы проекта.

    Придерживаться рекомендуемой файловой структуры не обязательно. Вы можете использовать любую альтернативную структуру проекта, соответствующую принципам организации файловой структуры БЭМ, например:

    • Flat

    • Flex

    40 идей для создания профессионального адреса электронной почты [обновление 2022 г.]

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

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

    Поэтому, хотя вам может понадобиться адрес типа QueenOfTheRealm, HoppyBeerLover или SpoiledRotten123 для ваших личных предпочтений, сохраните их для своей личной учетной записи электронной почты. Когда вы общаетесь с потенциальными клиентами и текущими клиентами, очень важно иметь адрес электронной почты, который внушает доверие.

    *** SUPERCHARGE Ваш аккаунт Gmail с этим БЕСПЛАТНЫМ расширением для Chrome ***

    Рекомендации по выбору идеального профессионального адреса электронной почты

    Лучшие адреса электронной почты упрощают работу. Хотя использование вашего имени кажется идеальным, многие простые комбинации имени и фамилии, возможно, уже были назначены другим цифровым пользователям. Или у вас может быть длинное имя или имя, которое отличается от традиционных форматов написания, и оба из них могут потенциально создавать проблемы.

    1. Делайте вещи легко запоминающимися

    Поскольку так много людей ведут бизнес через крошечные экраны своих мобильных устройств, опечатки в адресе — обычное дело, даже если это то, что обычно кажется простым для правильного написания.

    Если вы хотите, чтобы ваши деловые контакты запомнили что-то, состоящее из длинной цепочки букв и цифр, им может быть слишком сложно связаться с вами, и они перейдут к кому-то с более простым адресом.

    2. Сделайте его произносимым

    Если вы звоните или разговариваете с кем-то и упоминаете свой адрес электронной почты, он или она должны быть в состоянии точно написать или повторить написание вашего имени пользователя, не спрашивая у вас пояснений.

    Вам придется часто читать вслух свой адрес электронной почты по работе, поэтому убедитесь, что это легко и не требует много объяснений.
    ADD_THIS_TEXT

    3. Выберите свой собственный домен

    Если вы пользуетесь службой электронной почты, например, Gmail считается более актуальным и актуальным, чем AOL, и этот выбор может повлиять на отношение получателей к вашему бизнесу. Несмотря на то, что кроме таких известных, как Gmail, могут быть и другие отличные провайдеры, вашему бизнесу не выгодно использовать технически совершенную платформу с названием, которое невозможно произнести или запомнить.

    Персональный домен для вашего бизнеса также может быть хорошим выбором, если вы сможете его защитить. Те же рекомендации применимы и к созданию вашего URL-адреса: убедитесь, что он запоминающийся, пишется и произносится.

    Почему важно иметь собственный домен?

    • Укрепляет доверие и авторитет
    • Придает вам и вашему бизнесу более профессиональный вид
    • Защита авторских прав и товарных знаков
    • Повышает узнаваемость бренда ниже мы собрали несколько идей для комбинаций адресов электронной почты. Посмотрите, а затем попробуйте несколько, чтобы определить, какой из них лучше всего подходит для вашего бизнеса:

      Содержание:

      Комбинации имен

      Если вам повезет, комбинация вашего имени и фамилии будет доступна. Если это не так, могут подойти следующие варианты:

      1. Инициалы + фамилия = CWales

      2. Имя + отчество + фамилия (этот вариант может быть более эффективным для людей, у которых решили заменить девичью фамилию на фамилию партнера, потому что их девичья фамилия может быть более привычной/распространенной) = КэтринМиддлтонУэйлс

      3. Имя + отчество + фамилия = CatherineMWales

      4. Псевдоним + фамилия (выберите это, если ваш никнейм распространенный и профессиональный; что-то вроде «Squee», например, не является ни тем, ни другим) = KateWales

      5. Фамилия + имя (инвертирование делает его простым и дает вам дополнительные возможности для поиска подходящего адреса) = WalesCatherine

      6. Первый инициал + средний инициал + фамилия = CMWales

      7. Первый инициал + средний инициал + последний инициал = CMW

      8. Имя + инициал фамилии = CatherineW

      Изменение имени

      Если ваше имя было занято или если оно слишком длинное для требуемая длина электронного письма, есть много способов, которыми вы можете поиграть со своим именем, чтобы оно подходило.

      9. Сократите свое имя – CathWales

      10. Включите сокращенное отчество – CathMidWales

      Перевернутое имя

      Если комбинация вашего имени и фамилии недоступна, вы можете сначала указать свою фамилию. Если вы идете по этому пути, и особенно если у вас неоднозначное имя, убедитесь, что вы включили четкую подпись в электронной почте, чтобы контакты знали, под каким именем к вам обращаться.

      11. Фамилия + первый инициал + средний инициал = WalesCM

      12. Фамилия + имя + средний инициал = WalesCatherineM

      Подчеркивание квалификации

      Чрезмерное подчеркивание вашей квалификации может быть немного обидчивым; слишком много внимания к конкретному заголовку может показаться неприятным, а использование отраслевого жаргона может быть трудным для запоминания. Однако в некоторых ситуациях может иметь смысл использование полученной вами степени или звания:

      13. Должность + имя (это хорошо работает, когда ваша должность тесно связана с вашей ролью, например, врач или консультант) = DrSmith, ProfessorJones

      14. Только должность = JavaDeveloper

      15. Квалификация + имя (подходит, если вы работаете по профессии, тесно связанной с вашей квалификацией; если у вас есть квалификация, которая малоизвестна широкой публике, она может просто выглядеть как суп из алфавита, когда они его просматривают) = RossGellarPhD

      Укажите свое местоположение

      Если ваш бизнес привязан к определенной области или региону, или если вы являетесь филиалом или франшизой более крупной компании, может иметь смысл указать свое местоположение. местоположение в вашем идентификаторе электронной почты:

      16. Имя + Сити = Shawnsantabarbara

      17. Название + State = Shawncalifornia

      18. Имя + Компания = Shawnpsych

      19.full name + Company = Shawnspencerpsych

      19.full. Компания + город = PsychSantaBarbara

      Разрешить форму следовать за функцией

      Если вы используете свой адрес электронной почты для привлечения запросов на свой веб-сайт, может иметь смысл настроить адрес, в котором подробно указано, по поводу чего с вами связываются. Например, журналисту может быть неинтересно отправлять по электронной почте адрес, который звучит как рекламный, в то время как обычный покупатель, вероятно, не поймет, зачем ему связываться с PR-менеджером:

      21. Отдел = Продажи

      22. Роль = Запросы СМИ

      23. Общие = Вопросы, Информация

      24. Имя немного больше, но обязательно придерживайтесь простых правил написания и произношения) = JimSales или AngelaAccounting

      25. Связь с сообществом = Информационно-пропагандистская деятельность, Спонсорство, Пожертвования

      26. Поиск работы = Карьера, WorkWithUs

      Сделайте что-нибудь творческое

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

      Однако, если вы решите пойти по этому пути, убедитесь, что выбранный вами адрес соответствует бренду вашего бизнеса. Если вы продаете серьезный продукт, такой как безопасность данных или страхование жизни, контакты, которым вы холодно отправляете электронные письма, могут плохо реагировать на такие адреса, как «HackerStopper» или «PushingDaisies»:

      27. Электронная почта основателя (основатель не должен отслеживать ее круглосуточно и без выходных, но может создать впечатление доступности и связи, при необходимости эскалация электронной почты) = BenandJerry, JeffCEO

      28. Приветствие = Привет, Привет, Добрый день

      29. Основная ценность = Эмпатия

      30. Название компании + видение = ManpowerWinWork

      0009 32. Игра слов = MOOsletter

      Выделите свой бренд

      Это зависит от имени вашего домена. Если ваш домен  – это  название вашего бренда, то адрес электронной почты [название бренда]@[название бренда].com будет слишком повторяющимся. Однако, если ваше доменное имя не занято вашим бизнесом или торговой маркой, не стесняйтесь включать его.

      33. Используйте название вашего бренда или компании = [SpecialtySweaters]@domain.com

      [email protected] Альтернативы

      Чтобы казаться более доступным для ваших клиентов и клиентов, вы можете оживить обычный адрес электронной почты отдела продаж, используя слово, которое отражает то, что вы продаете. Например, если вы занимаетесь бизнесом, который помогает компаниям расти, тогда «рост» подойдет. Или, если вы цифровое агентство, помогающее компаниям быть найденными в Интернете, тогда «видимость» может быть лучше.

      34. Рост = рост@company.com

      35. Видимость = [email protected]

      36. Profits = [email protected]

      [email protected] Alternatives

      Обычный адрес электронной почты для запросов можно изменить в соответствии с услугой, которую вы предлагаете контактам, когда они свяжутся. Это помощь, поддержка, информация? Что бы это ни было, используйте это как свой контактный адрес и обратитесь к тем, кому вы пытаетесь помочь.

      37. Помощь = [email protected]

      38. Поддержка = [email protected]

      39. Информация = [email protected]

      40. Вопрос = вопросов@company.com

      Часто задаваемые вопросы (FAQ)

      Сколько стоит профессиональный адрес электронной почты?

      В то время как некоторые почтовые службы рекламируются как бесплатные, немногие из них действительно ничего не стоят. Тем не менее, если вы уже платите за веб-хостинг, ваше доменное имя часто будет сопровождаться бесплатной деловой электронной почтой. Хостинговые компании могут стоить всего 3 доллара в месяц.

      Что я должен включить в свою электронную подпись?

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

      Что лучше: G Suite или Microsoft 365?

      G Suite (от 6 долларов США на пользователя в месяц) — это свежий и удобный продукт, обеспечивающий более эффективное сотрудничество, чем Microsoft 365. Он подходит для частных лиц и компаний, у которых есть веб-хостинг, но им нужен корпоративный адрес электронной почты. Он невероятно масштабируемый, без ограничений по количеству пользователей независимо от плана.

      Microsoft 365 (от 5 долларов США за пользователя в месяц) лучше подходит для компаний, использующих Windows. Он предлагает больше функциональных возможностей, чем G Suite (например, позволяет сортировать и группировать электронные письма) и предоставляет больше места для хранения в своем базовом плане.

      Какие есть альтернативы G Suite или Microsoft 365?

      Электронная почта Zoho отлично подходит для компаний с ограниченным бюджетом, у которых уже есть доменное имя. Он предоставляет до пяти бесплатных учетных записей электронной почты для бизнеса на домен. Bluehost идеально подходит для тех, кто использует WordPress, но кому нужен веб-хостинг с бесплатным доменом и корпоративной электронной почтой.

      Повысьте уровень своей учетной записи электронной почты

      После того, как вы создали свой адрес электронной почты, пришло время начать получать максимальную отдачу от вашей учетной записи. Если вы решили использовать Gmail в качестве поставщика услуг электронной почты, то вы сделали правильный шаг. Одним из основных преимуществ учетной записи Gmail являются бесплатные надстройки или расширения, которые вы можете добавить, чтобы повысить эффективность своей учетной записи. Right Inbox — это бесплатное расширение для повышения эффективности работы с электронной почтой, которое повышает эффективность работы с электронной почтой благодаря таким функциям, как:

      Отслеживание электронной почты: узнайте, кто читает и нажимает на ваши электронные письма, сколько раз и когда. Получайте информацию в режиме реального времени о том, кто читает ваши электронные письма, а кто вас игнорирует.

      Отслеживание по электронной почте: настройте последующие уведомления, которые автоматически отправляются, если ваш потенциальный клиент не отвечает. Вы можете забыть подписаться, потому что Right Inbox этого не сделает.

      Шаблоны электронной почты. Превратите свои самые эффективные электронные письма в шаблоны, которые можно вставлять и оптимизировать одним щелчком мыши. Экономьте время, добавляя согласованности в общение по электронной почте.


      ADD_THIS_TEXT

      Заключение

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

      После этого вы готовы начать рассылать эти электронные письма. Ознакомьтесь с этим списком отличных тем электронных писем, которые помогут вам начать продвигать свою кампанию по электронной почте.

      Как настроить профессиональный адрес электронной почты (+примеры)

      Что такое профессиональный адрес электронной почты?

      Поскольку все происходит в Интернете и в облаке, у каждого из нас есть собственная учетная запись электронной почты, и мы используем свой адрес электронной почты для всех наших коммуникаций. Более того, наш адрес электронной почты стал нашей онлайн-идентификацией и базой для всех личных и связанных с работой услуг, которые мы используем. Следовательно, важно, чтобы у нас были разные учетные записи электронной почты или, как минимум, разные адреса электронной почты для личных и профессиональных целей общения. Наш рабочий адрес электронной почты следует использовать только для связи, связанной с работой, и для профессиональных отношений.

      Рабочий адрес электронной почты — это адрес, который вы в основном используете для общения с деловыми партнерами, коллегами, клиентами и партнерами. Только если рабочий адрес электронной почты включает личный домен, который вы зарегистрировали для своей компании, это будет профессиональный адрес электронной почты. Профессиональный адрес электронной почты — это адрес электронной почты, используемый для делового общения, который основан на вашем личном домене. Другими словами, профессиональный адрес электронной почты — это тот, который содержит название вашей компании в форме доменного имени.

      Каковы преимущества профессионального адреса электронной почты?  

      Когда вы создаете учетную запись электронной почты от популярных поставщиков услуг электронной почты с общим доменом, вы даже можете выбрать причудливое имя или забавную аббревиатуру для своего личного адреса электронной почты. Однако, когда речь идет о деловом общении, ваш адрес электронной почты и адрес электронной почты ваших сотрудников не должны быть случайными. Соблюдение правил этикета электронной почты в дополнение к профессиональному адресу электронной почты помогает составить эффективное письмо, показать свой профессионализм и продвигать свой бренд.

      Ваш адрес электронной почты должен быть основан на вашем домене, а также иметь профессиональный вид. Профессиональный адрес электронной почты предоставляет вам следующие преимущества:

      • Брендинг
      • Строите доверие
      • Аутентичность
      • Надежность
      • Простота отменения
      • Лучшая доставка и репутация

      Как выбрать профессиональный адрес электронной почты?

      Чтобы поддерживать согласованность при создании учетных записей электронной почты и гарантировать, что у каждого сотрудника есть профессиональный адрес электронной почты, вам необходимо спланировать и определить формат, в котором вы хотите использовать адреса электронной почты пользователей.

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

      [email protected]

      Пример: [email protected]

      Это еще один популярный формат, используемый организациями по всему миру. Этот формат адреса электронной почты предпочтительнее, потому что он личный и легко запоминающийся, поскольку он короткий и включает имя пользователя. Однако возможны конфликты, когда фамилии людей начинаются с одинаковых инициалов. Большинство администраторов предпочитают этот формат и используют сокращенную форму имени или две буквы от имени, чтобы избежать конфликтов.

      Пример: [email protected] ,

      [email protected] , если в той же организации есть еще два Питера Паркера.

      имя@домен.com 

      Пример: [email protected] 

      Клиенты и деловые контакты смогут легко идентифицировать человека, отправившего электронное письмо, и связаться с ним. Это идеально и очень подходит для стартапов и малых предприятий с 10 или менее пользователями. Однако по мере роста бизнеса/организации могут возникать конфликты из-за имен пользователей, и эта путаница становится еще более сложной, когда у обоих есть роли, связанные с клиентами. Это также вызывает путаницу во внутренних электронных письмах, когда есть несколько людей с одинаковым именем. Этот формат очень популярен только потому, что адреса легко запоминаются.

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

      Как создать профессиональный адрес электронной почты для всех пользователей, использующих Zoho Mail?

      Чтобы создать профессиональный адрес электронной почты с вашим доменом, вам необходимо сначала настроить свой домен в Zoho. После того, как вы завершите проверку своего домена с помощью Zoho Mail, вам необходимо добавить пользователей для создания их учетных записей электронной почты. Если у вас еще нет домена, вы можете купить его у Zoho. Домены, зарегистрированные через Zoho, уже полностью настроены и могут быть использованы мгновенно. Вы можете начать добавлять пользователей напрямую.

      Zoho Mail поддерживает несколько способов создания и выбора профессиональных адресов электронной почты для пользователей

      1. Вы можете добавлять пользователей по одному, указав их имя, фамилию и адрес электронной почты, который будет создан для них, а также пароль, который следует использовать для входа в систему. Этот метод лучше и предпочтительнее. когда вам нужно создать 10 пользователей или меньше.
      2. Однако, даже если необходимо создать более 5 учетных записей пользователей, рекомендуется использовать «Импорт из CSV» для создания пользователей на основе данных, загруженных из файла CSV.
      3. Вы можете использовать параметры «Импорт», доступные для импорта пользователей из CRM или других сервисов Zoho или напрямую из GSuite.

      Групповые адреса электронной почты: Профессиональные адреса электронной почты на основе функций/цели

      Еще один важный аспект, который часто упускают из виду при создании адреса электронной почты, — адрес электронной почты, основанный на назначении. По мере роста организации рекомендуется использовать общие или целевые адреса электронной почты, такие как [email protected], [email protected], [email protected] и т. д., которые подходят для конкретных целей. Это гарантирует, что даже если сотрудники покинут организацию, адреса электронной почты для важных целей, таких как [email protected], по-прежнему будут работать. На начальных этапах организации ответственность за поддержку, продажи и т. д. лежит на индивидуальном уровне, и общение происходит от клиента или руководителя напрямую к человеку. Однако, чтобы сделать общение более стандартным и профессиональным, лучше убедиться, что такие адреса электронной почты являются общими групповыми адресами, которыми управляет команда, а не отдельные лица.

      Общепринятая практика для групповой электронной почты:

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

      Общедоступные — учетные записи электронной почты внешней группы: 

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

      Примеры:

      66..com

    • [email protected]

    6666.com

  • Организация — учетные записи электронной почты внутренней группы:

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

    Примеры: 

    Как создать профессиональный адрес электронной почты для всех общие учетные записи или списки рассылки с помощью Zoho Mail?

    Чтобы создать профессиональный адрес электронной почты с вашим доменом для общих учетных записей или списков рассылки для вашего домена, вам необходимо создать группу электронной почты с публичным доступом. Подробные инструкции по созданию и управлению групповыми учетными записями электронной почты с профессиональными адресами электронной почты в Zoho Mail см. здесь.

    Ниже приведены некоторые из наиболее полезных функций при создании учетных записей групп на основе домена в Zoho Mail: 

    • Вы можете добавить несколько участников и назначить несколько модераторов для каждой группы.
    • Модератор будет иметь права группы и сможет дополнительно добавлять пользователей или изменять настройки этой группы. Модератор также может модерировать электронные письма, отправляемые группе, и одобрять или отклонять их.
    • Пользователи могут отправлять электронные письма, используя групповой адрес. Эта функция может быть расширена администратором для всех участников группы или только для определенных участников.
    • Когда пользователи отправляют электронные письма, используя групповой адрес электронной почты, их индивидуальный адрес электронной почты не будет виден получателю.
    • Администратор может включить функцию «Потоки» для группы, с помощью которой участники группы могут сотрудничать и общаться внутри группы прямо из папки «Входящие».

      Ключевые слова «ДОЛЖЕН», «НЕ ДОЛЖЕН», «ТРЕБУЕТСЯ», «ДОЛЖЕН», «НЕ ДОЛЖЕН», «СЛЕДУЕТ», «НЕ ДОЛЖЕН», «РЕКОМЕНДУЕТСЯ», «НЕ РЕКОМЕНДУЕТСЯ», «МОЖЕТ» и » НЕОБЯЗАТЕЛЬНО» в этом документе следует интерпретировать, как описано в BCP 14 RFC2119. RFC8174, когда и только когда они появляются заглавными буквами, как показано здесь.

      Этот документ находится под лицензией Apache License, Version 2.0.

      Введение

      Спецификация OpenAPI (OAS) определяет стандартный, независимый от языка интерфейс для RESTful API, который позволяет людям и компьютерам обнаруживать и понимать возможности службы без доступа к исходному коду, документации или проверки сетевого трафика. . При правильном определении потребитель может понимать и взаимодействовать с удаленной службой с минимальным количеством логики реализации.

      Затем определение OpenAPI может использоваться инструментами создания документации для отображения API, инструментами генерации кода для создания серверов и клиентов на различных языках программирования, инструментами тестирования и многими другими вариантами использования.

      Содержание

      • Определения
        • Документ OpenAPI
        • Шаблон пути
        • Типы носителей
        • Коды состояния HTTP
      • Спецификация
        • Версии
        • Формат
        • Структура документа
        • Типы данных
        • Расширенное форматирование текста
        • Относительные ссылки в URL-адресах
        • Схема
          • Объект OpenAPI
          • Информационный объект
          • Контакт Объект
          • Объект лицензии
          • Объект сервера
          • Переменный объект сервера
          • Компоненты Объект
          • Пути Объект
          • Объект элемента пути
          • Операционный Объект
          • Объект внешней документации
          • Объект параметров
          • Объект тела запроса
          • Тип носителя Объект
          • Объект кодирования
          • Ответы Объект
          • Объект ответа
          • Объект обратного вызова
          • Пример объекта
          • Объект связи
          • Объект заголовка
          • Объект тега
          • Справочный объект
          • Объект схемы
          • Дискриминатор Объект
          • XML-объект
          • Объект схемы безопасности
          • Объект потоков OAuth
          • Объект потока OAuth
          • Объект требования безопасности
        • Расширения спецификации
        • Фильтрация безопасности
      • Приложение A: История изменений

      Определения

      Документ OpenAPI

      Документ (или набор документов), определяющий или описывающий API. Определение OpenAPI использует спецификацию OpenAPI и соответствует ей.

      Шаблон пути

      Шаблон пути относится к использованию выражений шаблона, разделенных фигурными скобками ({}), для пометки раздела пути URL как заменяемого с использованием параметров пути.

      Каждое выражение шаблона в пути ДОЛЖНО соответствовать параметру пути, который включен в сам элемент пути и/или в каждую из операций элемента пути.

      Типы носителей

      Определения типов носителей распределены по нескольким ресурсам. Определения типа носителя ДОЛЖНЫ соответствовать RFC6838.

      Некоторые примеры возможных определений типа носителя:

       text/plain; кодировка = utf-8
        приложение/json
        приложение/vnd.github+json
        приложение/vnd.github.v3+json
        приложение/vnd.github.v3.raw+json
        приложение/vnd.github.v3.text+json
        приложение/vnd.github.v3.html+json
        приложение/vnd.github.v3.full+json
        приложение /vnd.github.v3.diff
        приложение /vnd.github.v3.patch
       
      Коды состояния HTTP

      Коды состояния HTTP используются для индикации состояния выполняемой операции. Доступные коды состояния определены в RFC7231, а зарегистрированные коды состояния перечислены в реестре кодов состояния IANA.

      Спецификация

      Версии

      Версия спецификации OpenAPI создается с использованием Semantic Versioning 2.0.0 (semver) и соответствует спецификации semver.

      Основной . второстепенная часть семвера (например 3.0 ) ДОЛЖЕН обозначать набор функций OAS. Как правило, в версиях .patch в этом документе рассматриваются ошибки, а не набор функций. Инструменты, поддерживающие OAS 3.0, ДОЛЖНЫ быть совместимы со всеми версиями OAS 3.0.*. Версия исправления НЕ ДОЛЖНА учитываться инструментами, например, не делая различий между 3.0.0 и 3.0.1 .

      Каждая новая дополнительная версия Спецификации OpenAPI ДОЛЖНА позволять любому документу OpenAPI, который действителен по сравнению с любой предыдущей дополнительной версией Спецификации, в пределах той же основной версии быть обновленным до новой версии Спецификации с эквивалентной семантикой. Такое обновление ДОЛЖНО требовать только изменения свойство openapi для новой минорной версии.

      Например, допустимый документ OpenAPI 3.0.2 после изменения его свойства openapi на 3.1.0 ДОЛЖЕН быть действительным документом OpenAPI 3.1.0, семантически эквивалентным исходному документу OpenAPI 3.0.2. Новые второстепенные версии спецификации OpenAPI ДОЛЖНЫ быть написаны, чтобы обеспечить эту форму обратной совместимости.

      Документ OpenAPI, совместимый с OAS 3.*.*, содержит обязательное поле openapi , которое указывает используемую семантическую версию OAS. (Документы OAS 2.0 содержат поле версии верхнего уровня с именем чванство и значение "2.0" .)

      Формат

      Документ OpenAPI, соответствующий спецификации OpenAPI, сам по себе является объектом JSON, который может быть представлен в формате JSON или YAML.

      Например, если поле имеет значение массива, будет использоваться представление массива JSON:

       {
         "поле": [ 1, 2, 3 ]
      }
       

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

      Схема предоставляет два типа полей: фиксированные поля с объявленным именем и шаблонные поля, которые объявляют шаблон регулярного выражения для имени поля.

      Шаблонные поля ДОЛЖНЫ иметь уникальные имена в содержащем объекте.

      Чтобы сохранить возможность переключения между форматами YAML и JSON, РЕКОМЕНДУЕТСЯ использовать YAML версии 1.2 вместе с некоторыми дополнительными ограничениями:

      • Теги ДОЛЖНЫ быть ограничены теми, которые разрешены набором правил схемы JSON.
      • Ключи, используемые в картах YAML, ДОЛЖНЫ быть ограничены скалярной строкой, как определено набором правил схемы YAML Failsafe.

      Примечание: Хотя API могут быть определены документами OpenAPI в формате YAML или JSON, тела запроса и ответа API, а также другое содержимое не обязательно должны быть в формате JSON или YAML.

      Структура документа

      Документ OpenAPI МОЖЕТ состоять из одного документа или разделен на несколько связанных частей по усмотрению пользователя. В последнем случае Поля $ref ДОЛЖНЫ использоваться в спецификации для ссылки на эти части, как следует из определений схемы JSON.

      РЕКОМЕНДУЕТСЯ, чтобы корневой документ OpenAPI имел имя: openapi.json или openapi.yaml .

      Типы данных

      Примитивные типы данных в OAS основаны на типах, поддерживаемых спецификацией схемы JSON Wright Draft 00. Обратите внимание, что целое число в качестве типа также поддерживается и определяется как число JSON без дробной или экспоненциальной части. null не поддерживается как тип (см. nullable для альтернативного решения). Модели определяются с помощью объекта схемы, который представляет собой расширенное подмножество спецификации схемы JSON Wright Draft 00.

      Примитивы имеют необязательное свойство модификатора: формат . OAS использует несколько известных форматов для точного определения используемого типа данных. Однако для поддержки потребностей в документации свойство формата является открытой строкой со значением и может иметь любое значение. Такие форматы, как "email" , "uuid" и т. д., МОГУТ использоваться, даже если они не определены этой спецификацией. Типы, которые не сопровождаются свойством формата , соответствуют определению типа в схеме JSON. Инструменты, которые не распознают определенный формат , МОГУТ по умолчанию вернуться к только типу , как если бы формат не был указан.

      OAS определяет следующие форматы:

      тип 9формат 0639 Комментарии
      целое число int32 32 бита со знаком
      целое число int64 64 бита со знаком (длинный)
      номер поплавок
      номер двойной
      струна
      струна байт символов в кодировке base64
      струна двоичный любая последовательность октетов
      логическое значение
      струна Дата Как определено полная дата — RFC3339
      строка дата-время Как определено дата-время — RFC3339
      струна пароль Подсказка пользовательскому интерфейсу для скрытия ввода.

      Расширенное форматирование текста

      Во всей спецификации описания полей отмечены как поддерживающие форматирование уценки CommonMark. Там, где инструментарий OpenAPI отображает форматированный текст, он ДОЛЖЕН поддерживать, как минимум, синтаксис уценки, как описано в CommonMark 0.27. Инструментарий МОЖЕТ игнорировать некоторые функции CommonMark для решения проблем безопасности.

      Относительные ссылки в URL-адресах

      Если не указано иное, все свойства, являющиеся URL-адресами, МОГУТ быть относительными ссылками, как определено в RFC3986. Относительные ссылки разрешаются с использованием URL-адресов, определенных в объекте сервера в качестве базового URI.

      Относительные ссылки, используемые в $ref , обрабатываются в соответствии со ссылкой JSON с использованием URL-адреса текущего документа в качестве базового URI. См. также Справочный объект.

      Схема

      В следующем описании, если поле не указано явно ТРЕБУЕТСЯ или описан как ДОЛЖЕН или СЛЕДУЕТ, его можно считать НЕОБЯЗАТЕЛЬНЫМ.

      Объект OpenAPI

      Это корневой объект документа OpenAPI.

      Фиксированные поля
      Имя поля Тип Описание
      опенапи струна ТРЕБУЕТСЯ . Эта строка ДОЛЖНА быть семантическим номером версии спецификации OpenAPI, которую использует документ OpenAPI. 9Поле 0639 openapi СЛЕДУЕТ использовать спецификациям инструментов и клиентам для интерпретации документа OpenAPI. Это , а не , связанный со строкой API info.version .
      информация Информационный объект ТРЕБУЕТСЯ . Предоставляет метаданные об API. Метаданные МОГУТ использоваться инструментами по мере необходимости.
      серверы [Объект сервера] Массив серверных объектов, которые предоставляют информацию о подключении к целевому серверу. Если Свойство серверов не указано или представляет собой пустой массив, значением по умолчанию будет объект сервера со значением URL-адреса / .
      путей Пути Объект ТРЕБУЕТСЯ . Доступные пути и операции для API.
      компоненты Компоненты Объект Элемент для хранения различных схем спецификации.
      безопасность [Объект требования безопасности] Объявление того, какие механизмы безопасности можно использовать в API. Список значений включает альтернативные объекты требований безопасности, которые можно использовать. Только один из объектов требования безопасности должен быть удовлетворен для авторизации запроса. Отдельные операции могут переопределить это определение. Чтобы сделать безопасность необязательной, в массив можно включить пустое требование безопасности ( {} ).
      теги [Тег объекта] Список тегов, используемых спецификацией, с дополнительными метаданными. Порядок тегов можно использовать для отражения их порядка инструментами синтаксического анализа. Не все теги, которые используются объектом операции, должны быть объявлены. Теги, которые не объявлены, МОГУТ быть организованы случайным образом или на основе логики инструментов. Каждое имя тега в списке ДОЛЖНО быть уникальным.
      внешние документы Объект внешней документации Дополнительная внешняя документация.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Информационный объект

      Объект предоставляет метаданные об API. Метаданные МОГУТ использоваться клиентами при необходимости и МОГУТ быть представлены в инструментах редактирования или создания документации для удобства.

      Фиксированные поля
      Имя поля Тип Описание
      название струна ТРЕБУЕТСЯ . Название API.
      описание струна Краткое описание API. Синтаксис CommonMark МОЖЕТ использоваться для форматированного текстового представления.
      условия обслуживания струна URL-адрес условий обслуживания для API. ДОЛЖЕН быть в формате URL.
      контакт Контакт Объект Контактная информация для открытого API.
      лицензия Объект лицензии Информация о лицензии для открытого API.
      версия струна ТРЕБУЕТСЯ . Версия документа OpenAPI (отличная от версии спецификации OpenAPI или версии реализации API).

      Этот объект МОЖЕТ быть расширен за счет расширений спецификаций.

      Пример информационного объекта
       {
        "title": "Пример приложения для зоомагазина",
        "description": "Это пример сервера для зоомагазина.",
        "termsOfService": "http://example.com/terms/",
        "контакт": {
          "name": "Поддержка API",
          "url": "http://www. example.com/support",
          "электронная почта": "[email protected]"
        },
        "лицензия": {
          "имя": "Апач 2.0",
          "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
        },
        "версия": "1.0.1"
      }
       
       title: Образец приложения для зоомагазина
      описание: Это пример сервера для зоомагазина.
      Условия обслуживания: http://example.com/terms/
      контакт:
        имя: Поддержка API
        URL-адрес: http://www.example.com/support
        электронная почта: [email protected]
      лицензия:
        имя: Апач 2.0
        URL-адрес: https://www.apache.org/licenses/LICENSE-2.0.html.
      версия: 1.0.1
       
      Контактный объект

      Контактная информация для открытого API.

      Фиксированные поля
      Имя поля Тип Описание
      имя струна Идентификационное имя контактного лица/организации.
      адрес струна URL-адрес, указывающий на контактную информацию. ДОЛЖЕН быть в формате URL.
      электронная почта струна Адрес электронной почты контактного лица/организации. ДОЛЖЕН быть в формате адреса электронной почты.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Пример объекта контакта
       {
        "name": "Поддержка API",
        "url": "http://www.example.com/support",
        "электронная почта": "[email protected]"
      }
       
       имя: Поддержка API
      URL-адрес: http://www.example.com/support
      электронная почта: [email protected]
       
      Объект лицензии

      Информация о лицензии для открытого API.

      Фиксированные поля
      Имя поля Тип Описание
      имя струна ТРЕБУЕТСЯ . Имя лицензии, используемое для API.
      адрес струна URL-адрес лицензии, используемой для API. ДОЛЖЕН быть в формате URL.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Пример объекта лицензии
       {
        "имя": "Апач 2.0",
        "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
      }
       
       имя: Apache 2.0
      URL-адрес: https://www.apache.org/licenses/LICENSE-2.0.html.
       
      Объект сервера

      Объект, представляющий сервер.

      Фиксированные поля
      Имя поля Тип Описание
      адрес струна ТРЕБУЕТСЯ . URL-адрес целевого хоста. Этот URL-адрес поддерживает серверные переменные и МОЖЕТ быть относительным, чтобы указать, что расположение хоста относится к местоположению, где обслуживается документ OpenAPI. Подстановки переменных будут сделаны, когда переменная названа в { скобки } .
      описание струна Необязательная строка, описывающая хост, указанный URL-адресом. Синтаксис CommonMark МОЖЕТ использоваться для форматированного текстового представления.
      переменные Карта [ строка , объект переменной сервера] Сопоставление между именем переменной и ее значением. Значение используется для подстановки в шаблоне URL-адреса сервера.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Пример объекта сервера

      Отдельный сервер может быть описан как:

       {
        "url": "https://development.gigantic-server.com/v1",
        "description": "Сервер разработки"
      }
       
       URL-адрес: https://development.gigantic-server.com/v1
      описание: Сервер разработки
       

      Ниже показано, как можно описать несколько серверов, например, серверов объекта OpenAPI :

       {
        "серверы": [
          {
            "url": "https://development.gigantic-server.com/v1",
            "description": "Сервер разработки"
          },
          {
            "url": "https://staging. gigantic-server.com/v1",
            "description": "Промежуточный сервер"
          },
          {
            "url": "https://api.gigantic-server.com/v1",
            "description": "Производственный сервер"
          }
        ]
      }
       
       серверов:
      - URL-адрес: https://development.gigantic-server.com/v1
        описание: Сервер разработки
      - URL-адрес: https://staging.gigantic-server.com/v1
        описание: Промежуточный сервер
      - URL-адрес: https://api.gigantic-server.com/v1
        описание: Рабочий сервер
       

      Ниже показано, как можно использовать переменные для конфигурации сервера:

       {
        "серверы": [
          {
            "url": "https://{имя пользователя}.gigantic-server.com:{порт}/{базовый путь}",
            "description": "Производственный сервер API",
            "переменные": {
              "имя пользователя": {
                "по умолчанию": "демо",
                "description": "это значение назначается поставщиком услуг, в данном примере это `gigantic-server.com`"
              },
              "порт": {
                "перечисление": [
                  "8443",
                  "443"
                ],
                "по умолчанию": "8443"
              },
              "базовый путь": {
                "по умолчанию": "v2"
              }
            }
          }
        ]
      }
       
       серверов:
      - URL-адрес: https://{имя пользователя}. gigantic-server.com:{порт}/{базовый путь}
        описание: Рабочий сервер API
        переменные:
          имя пользователя:
            # примечание! отсутствие перечисления здесь означает, что это открытое значение
            по умолчанию: демо
            описание: это значение назначается поставщиком услуг, в данном примере это `gigantic-server.com`.
          порт:
            перечисление:
              - '8443'
              - «443»
            по умолчанию: '8443'
          базовый путь:
            # открытый означает, что есть возможность использовать специальные базовые пути, назначенные провайдером, по умолчанию `v2`
            по умолчанию: v2
       
      Объект переменной сервера

      Объект, представляющий переменную сервера для подстановки шаблона URL-адреса сервера.

      Фиксированные поля
      Имя поля Тип Описание
      перечисление [ строка ] Перечисление строковых значений, которые следует использовать, если параметры подстановки относятся к ограниченному набору. Массив НЕ ДОЛЖЕН быть пустым.
      по умолчанию струна ТРЕБУЕТСЯ . Значение по умолчанию, используемое для замены, которое ДОЛЖНО быть отправлено, если предоставлено альтернативное значение , а не . Обратите внимание, что это поведение отличается от обработки объектов схемы значений по умолчанию, потому что в этих случаях значения параметров являются необязательными. Если определено перечисление , значение ДОЛЖНО существовать в значениях перечисления.
      описание струна Необязательное описание серверной переменной. Синтаксис CommonMark МОЖЕТ использоваться для форматированного текстового представления.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Компоненты Объект

      Содержит набор многократно используемых объектов для различных аспектов OAS. Все объекты, определенные в объекте компонентов, не будут влиять на API, если на них явно не ссылаются свойства вне объекта компонентов.

      Фиксированные поля
      Имя поля Тип Описание
      схемы Карта[ строка , Объект схемы | Справочный объект] Объект для хранения многократно используемых объектов схемы.
      ответов Карта[ строка , Объект ответа | Справочный объект] Объект для хранения многократно используемых объектов ответа.
      параметры Карта[ строка , объект параметра | Справочный объект] Объект для хранения повторно используемых объектов параметров.
      примеры Карта[ строка , пример объекта | Справочный объект] Объект для хранения повторно используемых примеров объектов.
      запросТело Карта[ строка , Объект тела запроса | Справочный объект] Объект для хранения повторно используемых объектов тела запроса.
      коллекторы Карта[ строка , Объект заголовка | Справочный объект] Объект для хранения повторно используемых объектов заголовка.
      Схемы безопасности Карта[ строка , Объект схемы безопасности | Справочный объект] Объект для хранения многократно используемых объектов схемы безопасности.
      ссылки Карта[ строка , Объект ссылки | Справочный объект] Объект для многократного использования Link Objects.
      обратные вызовы Карта[ строка , Объект обратного вызова | Справочный объект] Объект для хранения повторно используемых объектов обратного вызова. 9[a-zA-Z0-9\.\-_]+$ .

      Примеры имени поля:

       Пользователь
      Пользователь_1
      Имя пользователя
      имя пользователя
      my.org.Пользователь
       
      Компоненты Пример объекта
       "компоненты": {
        "схемы": {
          "Общая ошибка": {
            "тип": "объект",
            "характеристики": {
              "код": {
                "тип": "целое",
                "формат": "int32"
              },
              "сообщение": {
                "тип": "строка"
              }
            }
          },
          "Категория": {
            "тип": "объект",
            "характеристики": {
              "я бы": {
                "тип": "целое",
                "формат": "int64"
              },
              "имя": {
                "тип": "строка"
              }
            }
          },
          "Ярлык": {
            "тип": "объект",
            "характеристики": {
              "я бы": {
                "тип": "целое",
                "формат": "int64"
              },
              "имя": {
                "тип": "строка"
              }
            }
          }
        },
        "параметры": {
          "скиппарам": {
            "имя": "пропустить",
            "в": "запрос",
            "description": "количество элементов для пропуска",
            «требуется»: правда,
            "схема": {
              "тип": "целое",
              "формат": "int32"
            }
          },
          "лимитПарам": {
            "имя": "лимит",
            "в": "запрос",
            "description": "максимальное количество возвращаемых записей",
            «требуется»: правда,
            "схема": {
              "тип": "целое",
              "формат": "int32"
            }
          }
        },
        "ответы": {
          "Не обнаружена": {
            "description": "Объект не найден. "
          },
          "Незаконный ввод": {
            "description": "Недопустимый ввод для операции."
          },
          "Общая ошибка": {
            "description": "Общая ошибка",
            "содержание": {
              "приложение/json": {
                "схема": {
                  "$ref": "#/компоненты/схемы/Общая ошибка"
                }
              }
            }
          }
        },
        "Схемы безопасности": {
          "апи_ключ": {
            "тип": "апиКей",
            "имя": "api_key",
            "в": "заголовок"
          },
          "зоомагазин_auth": {
            "тип": "oauth3",
            "течет": {
              "скрытый": {
                "authorizationUrl": "http://example.org/api/oauth/dialog",
                "области": {
                  "write:pets": "изменить питомцев в вашем аккаунте",
                  "read:pets": "читать своих питомцев"
                }
              }
            }
          }
        }
      }
       
       компоненты:
        схемы:
          Общая ошибка:
            тип: объект
            характеристики:
              код:
                тип: целое число
                формат: int32
              сообщение:
                тип: строка
          Категория:
            тип: объект
            характеристики:
              я бы:
                тип: целое число
                формат: int64
              имя:
                тип: строка
          Ярлык:
            тип: объект
            характеристики:
              я бы:
                тип: целое число
                формат: int64
              имя:
                тип: строка
        параметры:
          пропуститьПарам:
            имя: пропустить
            в: запрос
            описание: количество элементов, которые нужно пропустить
            требуется: правда
            схема:
              тип: целое число
              формат: int32
          limitПарам:
            Название: лимит
            в: запрос
            описание: максимальное количество возвращаемых записей
            требуется: правда
            схема:
              тип: целое число
              формат: int32
        ответы:
          Не обнаружена:
            Описание: Объект не найден. 
          Незаконный ввод:
            Описание: Недопустимый ввод для операции.
          Общая ошибка:
            описание: Общая ошибка
            содержание:
              приложение/json:
                схема:
                  $ref: '#/компоненты/схемы/Общая ошибка'
        схемы безопасности:
          ключ_апи:
            тип: апиКей
            имя: API_key
            в: заголовок
          зоомагазин_auth:
            тип: oauth3
            потоки:
              скрытый:
                URL-адрес авторизации: http://example.org/api/oauth/dialog
                области:
                  write:pets: изменить питомцев в своей учетной записи
                  read:pets: читай своих питомцев
       
      Paths Object

      Содержит относительные пути к отдельным конечным точкам и их операциям. Путь добавляется к URL-адресу из серверного объекта для создания полного URL-адреса. Пути МОГУТ быть пустыми из-за ограничений ACL.

      Узорчатые поля
      Узорчатые поля Тип Описание
      /{путь} Объект элемента пути Относительный путь к отдельной конечной точке. Имя поля ДОЛЖНО начинаться с косой черты ( /). Путь представляет собой , добавленный (без разрешения относительного URL-адреса) к расширенному URL-адресу из поля URL-адреса серверного объекта для создания полного URL-адреса. Шаблоны путей разрешены. При сопоставлении URL-адресов конкретные (не шаблонные) пути будут сопоставляться перед их шаблонными аналогами. Шаблонные пути с одинаковой иерархией, но разными шаблонными именами НЕ ДОЛЖНЫ существовать, поскольку они идентичны. В случае неоднозначного сопоставления инструменты должны решить, какой из них использовать.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Сопоставление шаблонов путей

      Предполагая следующие пути, конкретное определение /pets/mine будет сопоставляться первым, если используется:

       /pets/{petId}
        /домашние животные/мой
       

      Следующие пути считаются идентичными и недействительными:

       /pets/{petId}
        /имя питомца}
       

      Следующее может привести к неоднозначному разрешению:

       /{entity}/me
        /книги/{id}
       
      Пример объекта путей
       {
        "/домашние питомцы": {
          "получить": {
            "description": "Возвращает всех питомцев из системы, к которым у пользователя есть доступ",
            "ответы": {
              "200": {
                "description": "Список питомцев. ",
                "содержание": {
                  "приложение/json": {
                    "схема": {
                      "тип": "массив",
                      "Предметы": {
                        "$ref": "#/компоненты/схемы/животное"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
       
       /домашние животные:
        получить:
          описание: Возвращает всех питомцев из системы, к которым у пользователя есть доступ
          ответы:
            «200»:
              описание: Список питомцев.
              содержание:
                приложение/json:
                  схема:
                    тип: массив
                    Предметы:
                      $ref: '#/компоненты/схемы/домашнее животное'
       
      Объект объекта пути

      Описывает операции, доступные на одном пути. Элемент пути МОЖЕТ быть пустым из-за ограничений ACL. Сам путь по-прежнему открыт для просмотра документации, но они не будут знать, какие операции и параметры доступны.

      Фиксированные поля
      Имя поля Тип Описание
      $ref струна Позволяет внешнее определение этого элемента пути. Структура, на которую делается ссылка, ДОЛЖНА быть в формате объекта элемента пути. В случае, если поле Объект элемента пути появляется как в определенном объекте, так и в объекте, на который указывает ссылка, поведение не определено.
      резюме струна Необязательная строковая сводка, предназначенная для применения ко всем операциям в этом пути.
      описание струна Необязательное строковое описание, предназначенное для применения ко всем операциям в этом пути. Синтаксис CommonMark МОЖЕТ использоваться для форматированного текстового представления.
      получить Операционный Объект Определение операции GET для этого пути.
      поставить Операционный Объект Определение операции PUT на этом пути.
      пост Операционный Объект Определение операции POST на этом пути.
      удалить Операционный Объект Определение операции DELETE на этом пути.
      опции Операционный Объект Определение операции OPTIONS на этом пути.
      головка Операционный Объект Определение операции HEAD на этом пути.
      патч Операционный Объект Определение операции PATCH на этом пути.
      след Операционный Объект Определение операции TRACE на этом пути.
      серверы [Объект сервера] Альтернативный массив серверов для обслуживания всех операций по этому пути.
      параметры [Объект параметра | Справочный объект] Список параметров, применимых ко всем операциям, описанным в этом пути. Эти параметры можно переопределить на уровне операции, но нельзя удалить там. Список НЕ ДОЛЖЕН включать повторяющиеся параметры. Уникальный параметр определяется комбинацией имени и местоположения. Список может использовать ссылочный объект для связи с параметрами, которые определены в компонентах/параметрах объекта OpenAPI.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Пример объекта элемента пути
       {
        "получить": {
          "description": "Возвращает питомцев по идентификатору",
          "summary": "Найти питомцев по ID",
          "operationId": "getPetsById",
          "ответы": {
            "200": {
              "description": "ответ питомца",
              "содержание": {
                "*/*": {
                  "схема": {
                    "тип": "массив",
                    "Предметы": {
                      "$ref": "#/компоненты/схемы/домашнее животное"
                    }
                  }
                }
              }
            },
            "дефолт": {
              "description": "полезная нагрузка ошибки",
              "содержание": {
                "текст/html": {
                  "схема": {
                    "$ref": "#/компоненты/схемы/ErrorModel"
                  }
                }
              }
            }
          }
        },
        "параметры": [
          {
            "имя": "идентификатор",
            "в": "путь",
            "description": "ID питомца для использования",
            «требуется»: правда,
            "схема": {
              "тип": "массив",
              "Предметы": {
                "тип": "строка"
              }
            },
            "стиль": "простой"
          }
        ]
      }
       
       получить:
        описание: Возвращает питомцев на основе ID
        резюме: Поиск домашних животных по идентификатору
        идентификатор операции: getPetsById
        ответы:
          «200»:
            описание: реакция питомца
            содержание:
              '*/*' :
                схема:
                  тип: массив
                  Предметы:
                    $ref: '#/компоненты/схемы/домашнее животное'
          дефолт:
            описание: ошибка полезной нагрузки
            содержание:
              'текст/html':
                схема:
                  $ref: '#/components/schemas/ErrorModel'
      параметры:
      - имя: идентификатор
        в: путь
        description: ID питомца для использования
        требуется: правда
        схема:
          тип: массив
          Предметы:
            тип: строка
        стиль: простой
       
      Operation Object

      Описывает одну операцию API на пути.

      Фиксированные поля
      Имя поля Тип Описание
      теги [ строка ] Список тегов для управления документацией API. Теги могут использоваться для логической группировки операций по ресурсам или любому другому классификатору.
      резюме струна Краткое описание того, что делает операция.
      описание струна Подробное объяснение поведения операции. Синтаксис CommonMark МОЖЕТ использоваться для форматированного текстового представления.
      внешние документы Объект внешней документации Дополнительная внешняя документация для этой операции.
      идентификатор операции струна Уникальная строка, используемая для идентификации операции. Идентификатор ДОЛЖЕН быть уникальным среди всех операций, описанных в API. Значение OperationId равно 9.0009 с учетом регистра . Инструменты и библиотеки МОГУТ использовать идентификатор операции для уникальной идентификации операции, поэтому РЕКОМЕНДУЕТСЯ следовать общепринятым соглашениям об именах в программировании.
      параметры [Объект параметра | Справочный объект] Список параметров, применимых для этой операции. Если параметр уже определен в элементе пути, новое определение переопределит его, но никогда не сможет удалить. Список НЕ ДОЛЖЕН включать повторяющиеся параметры. Уникальный параметр определяется комбинацией имени и местоположения. Список может использовать ссылочный объект для связи с параметрами, которые определены в компонентах/параметрах объекта OpenAPI.
      запростело Объект тела запроса | Эталонный Объект Тело запроса, применимое к этой операции. requestBody поддерживается только в методах HTTP, где спецификация HTTP 1.1 RFC7231 явно определяет семантику для тела запроса. В других случаях, когда спецификация HTTP расплывчата, requestBody ДОЛЖЕН игнорироваться потребителями.
      ответов Ответы Объект ТРЕБУЕТСЯ . Список возможных ответов в том виде, в каком они возвращаются при выполнении этой операции.
      обратные вызовы Карта[ строка , Объект обратного вызова | Справочный объект] Карта возможных внеполосных обратных вызовов, связанных с родительской операцией. Ключ является уникальным идентификатором объекта обратного вызова. Каждое значение на карте — это объект обратного вызова, описывающий запрос, который может быть инициирован поставщиком API, и ожидаемые ответы.
      устарело логическое значение Объявляет эту операцию устаревшей. Потребители ДОЛЖНЫ воздерживаться от использования объявленной операции. Значение по умолчанию: false .
      безопасность [Объект требования безопасности] Объявление того, какие механизмы безопасности можно использовать для этой операции. Список значений включает альтернативные объекты требований безопасности, которые можно использовать. Только один из объектов требования безопасности должен быть удовлетворен для авторизации запроса. Чтобы сделать безопасность необязательной, пустое требование безопасности ( {} ) могут быть включены в массив. Это определение переопределяет любой объявленный уровень безопасности верхнего уровня . Чтобы удалить декларацию безопасности верхнего уровня, можно использовать пустой массив.
      серверы [Объект сервера] Альтернативный серверный массив для обслуживания этой операции. Если альтернативный объект server указан на уровне объекта элемента пути или корневого уровня, он будет переопределен этим значением.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Пример объекта операции
       {
        "метки": [
          "домашний питомец"
        ],
        "summary": "Обновляет питомца в магазине с данными формы",
        "operationId": "updatePetWithForm",
        "параметры": [
          {
            "имя": "идентификатор домашнего животного",
            "в": "путь",
            "description": "ID питомца, который необходимо обновить",
            «требуется»: правда,
            "схема": {
              "тип": "строка"
            }
          }
        ],
        "тело запроса": {
          "содержание": {
            "приложение/x-www-форма-urlencoded": {
              "схема": {
                "тип": "объект",
                "характеристики": {
                  "имя": {
                    "description": "Обновлено имя питомца",
                    "тип": "строка"
                  },
                  "статус": {
                    "description": "Обновлен статус питомца",
                    "тип": "строка"
                  }
                },
                "требуется": ["статус"]
              }
            }
          }
        },
        "ответы": {
          "200": {
            "description": "Питомец обновлен. ",
            "содержание": {
              "приложение/json": {},
              "приложение/xml": {}
            }
          },
          "405": {
            "description": "Метод не разрешен",
            "содержание": {
              "приложение/json": {},
              "приложение/xml": {}
            }
          }
        },
        "безопасность": [
          {
            "зоомагазин_аутент": [
              "написать: домашние животные",
              "читать: домашние животные"
            ]
          }
        ]
      }
       
       теги:
      - домашний питомец
      резюме: Обновляет питомца в магазине с данными формы
      идентификатор операции: updatePetWithForm
      параметры:
      - имя: petId
        в: путь
        description: ID питомца, который нужно обновить
        требуется: правда
        схема:
          тип: строка
      тело запроса:
        содержание:
          'приложение/x-www-form-urlencoded':
            схема:
             характеристики:
                имя:
                  описание: Обновлено имя питомца
                  тип: строка
                статус:
                  описание: Обновлен статус питомца
                  тип: строка
             требуется:
               - статус
      ответы:
        «200»:
          описание: Питомец обновлен. 
          содержание:
            'приложение/json': {}
            'приложение/xml': {}
        «405»:
          описание: Метод не разрешен
          содержание:
            'приложение/json': {}
            'приложение/xml': {}
      безопасность:
      - petstore_auth:
        - напиши: домашние животные
        - читать: домашние животные
       
      Объект внешней документации

      Позволяет ссылаться на внешний ресурс для получения расширенной документации.

      Фиксированные поля
      Имя поля Тип Описание
      описание струна Краткое описание целевой документации. Синтаксис CommonMark МОЖЕТ использоваться для форматированного текстового представления.
      адрес строка ТРЕБУЕТСЯ . URL целевой документации. Значение ДОЛЖНО быть в формате URL.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Пример объекта внешней документации
       {
        "description": "Подробнее здесь",
        "url": "https://example. com"
      }
       
       описание: Подробнее здесь
      адрес: https://example.com
       
      Объект параметра

      Описывает один рабочий параметр.

      Уникальный параметр определяется комбинацией имени и местоположения.

      Расположение параметров

      Существует четыре возможных расположения параметров, указанных в поле в поле :

      • путь — используется вместе с шаблоном пути, где значение параметра фактически является частью URL-адреса операции. Это не включает хост или базовый путь API. Например, в /items/{itemId} параметр пути равен itemId .
      • Запрос
      • — параметры, которые добавляются к URL-адресу. Например, в /items?id=### , параметр запроса id .
      • Заголовок
      • — настраиваемые заголовки, которые ожидаются как часть запроса. Обратите внимание, что RFC7230 указывает, что имена заголовков нечувствительны к регистру.
      • cookie — используется для передачи определенного значения cookie в API.
      Фиксированные поля
      Имя поля Тип Описание
      имя струна ТРЕБУЕТСЯ . Имя параметра. Имена параметров чувствительны к регистру .
      • Если в является "путь" , поле имени ДОЛЖНО соответствовать выражению шаблона, встречающемуся в поле пути в объекте Paths. Дополнительную информацию см. в разделе Шаблоны путей.
      • Если в — это «заголовок» , а поле имени — это «Принять» , «Content-Type» или «Авторизация» , определение параметра ДОЛЖНО игнорироваться.
      • Во всех остальных случаях имя соответствует имени параметра, используемому свойством в .
      в струна ТРЕБУЕТСЯ . Расположение параметра. Возможные значения: "запрос" , "заголовок" , "путь" или "cookie" .
      описание строка Краткое описание параметра. Это может содержать примеры использования. Синтаксис CommonMark МОЖЕТ использоваться для форматированного текстового представления.
      требуется логическое значение Определяет, является ли этот параметр обязательным. Если расположение параметра "путь" , это свойство REQUIRED и его значение ДОЛЖНО быть true . В противном случае свойство МОЖЕТ быть включено, и его значение по умолчанию равно .ложь .
      устарело логическое значение Указывает, что параметр устарел и его СЛЕДУЕТ вывести из использования. Значение по умолчанию: false .
      разрешить пустое значение логическое значение Устанавливает возможность передачи пустых параметров. Это действительно только для параметров запроса и позволяет отправлять параметр с пустым значением. Значение по умолчанию: ложь . Если используется стиль , и если поведение н/д (не может быть сериализовано), значение allowEmptyValue ДОЛЖНО игнорироваться. Использование этого свойства НЕ РЕКОМЕНДУЕТСЯ, так как оно может быть удалено в более поздних версиях.

      Правила сериализации параметра задаются одним из двух способов. Для более простых сценариев схема и стиль могут описывать структуру и синтаксис параметра.

      Имя поля Тип Описание
      стиль струна Описывает, как значение параметра будет сериализовано в зависимости от типа значения параметра. Значения по умолчанию (на основе значения в ): для запроса форма ; для путь простой ; для заголовка простой ; для печенье форма .
      взорвать логическое значение Когда это верно, значения параметров типа массива или объекта генерируют отдельные параметры для каждого значения массива или пары ключ-значение карты. Для других типов параметров это свойство не действует. Когда стиль равен форме , значением по умолчанию является true . Для всех остальных стилей значение по умолчанию — false .
      разрешитьЗарезервировано логическое значение Определяет, СЛЕДУЕТ ли значение параметра разрешать включение зарезервированных символов, как определено в RFC3986 :/?#[]@!$&'()*+,;= , без процентного кодирования. Это свойство применяется только к параметрам со значением в запроса . Значение по умолчанию — false .
      схема Объект схемы | Эталонный Объект Схема, определяющая тип, используемый для параметра.
      пример Любой Пример потенциального значения параметра. Пример ДОЛЖЕН соответствовать указанной схеме и свойствам кодирования, если они есть. Поле примера является взаимоисключающим полем примеров . Кроме того, при ссылке на схему , которая содержит пример, значение примера ДОЛЖНО переопределять пример, предоставленный схемой. Чтобы представить примеры типов мультимедиа, которые не могут быть представлены естественным образом в JSON или YAML, строковое значение может содержать пример с экранированием, где это необходимо.
      примеры Карта[ строка , пример объекта | Справочный объект] Примеры потенциального значения параметра. Каждый пример ДОЛЖЕН содержать значение в правильном формате, указанном в кодировке параметра. Поле примеров является взаимоисключающим полем примеров . Кроме того, при ссылке на схему , которая содержит пример, значение примеров ДОЛЖНО переопределять пример, предоставленный схемой.

      Для более сложных сценариев свойство content может определять тип носителя и схему параметра. Параметр ДОЛЖЕН содержать либо свойство схемы , либо свойство содержимого , но не то и другое одновременно. Когда пример или примеры предоставляется в сочетании с объектом схемы , пример ДОЛЖЕН следовать предписанной стратегии сериализации для параметра.

      Имя поля Тип Описание
      содержание Карта [ строка , объект типа мультимедиа] Карта, содержащая представления параметра. Ключ — это тип носителя, а значение описывает его. Карта ДОЛЖНА содержать только одну запись.
      Значения стиля

      Для поддержки распространенных способов сериализации простых параметров определен набор значений стиля .

      стиль тип в Комментарии
      матрица примитив , массив , объект путь Параметры стиля пути, определенные RFC6570
      этикетка примитив , массив , объект путь Параметры стиля метки, определенные RFC6570
      форма примитив , массив , объект запрос , файл cookie Параметры стиля формы, определенные RFC6570. Этот параметр заменяет collectionFormat значением csv (когда explore имеет значение false) или multi (когда explore имеет значение true) из OpenAPI 2.0.
      простой массив путь , заголовок Параметры простого стиля, определенные RFC6570. Этот параметр заменяет collectionFormat значением csv из OpenAPI 2.0.
      пробел массив запрос Значения массива, разделенные пробелами. Этот параметр заменяет collectionFormat на ssv из OpenAPI 2.0.
      труба с разделителями массив запрос Значения массива, разделенные вертикальной чертой. Этот параметр заменяет collectionFormat равным каналам из OpenAPI 2. 0.
      ГлубинныйОбъект объект запрос Обеспечивает простой способ визуализации вложенных объектов с использованием параметров формы.
      Примеры исполнения

      Предположим, что параметр с именем цвет имеет одно из следующих значений:

       строка -> "синий"
         массив -> ["синий","черный","коричневый"]
         объект -> { "R": 100, "G": 200, "B": 150}
       

      В следующей таблице показаны примеры различий в отображении для каждого значения.

      стиль взорвать пустой струна массив объект
      матрица ложь ;цвет ;цвет=синий ;цвет=синий,черный,коричневый ;цвет=R,100,G,200,B,150
      матрица правда ;цвет ;цвет=синий ;цвет=синий;цвет=черный;цвет=коричневый ;R=100;G=200;B=150
      этикетка ложь . .синий .синий.черный.коричневый .R.100.G.200.B.150
      этикетка правда . .синий .синий.черный.коричневый .R=100.G=200.B=150
      форма ложь цвет= цвет=синий цвет=синий,черный,коричневый цвет=R,100,G,200,B,150
      форма правда цвет= цвет=синий цвет=синий&цвет=черный&цвет=коричневый R=100&G=200&B=150
      простой ложь н/д синий синий, черный, коричневый Р, 100, Г, 200, Б, 150
      простой правда н/д синий синий, черный, коричневый R=100,G=200,B=150
      пробел ложь н/д н/д синий%20черный%20коричневый Р%20100%20G%20200%20B%20150
      труба с разделителями ложь н/д н/д синий|черный|коричневый Р|100|Г|200|В|150
      ГлубинныйОбъект правда н/д н/д н/д цвет[R]=100&цвет[G]=200&цвет[B]=150

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Примеры объектов параметров

      Параметр заголовка с массивом 64-битных целых чисел:

       {
        "имя": "токен",
        "в": "заголовок",
        "description": "токен для передачи в качестве заголовка",
        «требуется»: правда,
        "схема": {
          "тип": "массив",
          "Предметы": {
            "тип": "целое",
            "формат": "int64"
          }
        },
        "стиль": "простой"
      }
       
       имя: токен
      в: заголовок
      описание: токен для передачи в качестве заголовка
      требуется: правда
      схема:
        тип: массив
        Предметы:
          тип: целое число
          формат: int64
      стиль: простой
       

      Параметр пути строкового значения:

       {
        "имя": "имя пользователя",
        "в": "путь",
        "description": "имя пользователя для извлечения",
        «требуется»: правда,
        "схема": {
          "тип": "строка"
        }
      }
       
       имя: имя пользователя
      в: путь
      описание: имя пользователя для получения
      требуется: правда
      схема:
        тип: строка
       

      Необязательный параметр запроса строкового значения, позволяющий использовать несколько значений путем повторения параметра запроса:

       {
        "имя": "идентификатор",
        "в": "запрос",
        "description": "ID объекта для извлечения",
        «требуется»: ложь,
        "схема": {
          "тип": "массив",
          "Предметы": {
            "тип": "строка"
          }
        },
        "стиль": "форма",
        "взорваться": правда
      }
       
       имя: идентификатор
      в: запрос
      описание: ID объекта для выборки
      требуется: ложь
      схема:
        тип: массив
        Предметы:
          тип: строка
      стиль: форма
      взорваться: правда
       

      Параметр запроса в произвольной форме, допускающий неопределенные параметры определенного типа:

       {
        "в": "запрос",
        "имя": "свободная форма",
        "схема": {
          "тип": "объект",
          "дополнительные свойства": {
            "тип": "целое число"
          },
        },
        "стиль": "форма"
      }
       
       в: запрос
      Название: FreeForm
      схема:
        тип: объект
        дополнительные свойства:
          тип: целое число
      стиль: форма
       

      Сложный параметр, использующий содержимое для определения сериализации:

       {
        "в": "запрос",
        "имя": "координаты",
        "содержание": {
          "приложение/json": {
            "схема": {
              "тип": "объект",
              "требуется": [
                "лат",
                "длинная"
              ],
              "характеристики": {
                "лат": {
                  "тип": "число"
                },
                "длинная": {
                  "тип": "число"
                }
              }
            }
          }
        }
      }
       
       в: запрос
      имя: координаты
      содержание:
        приложение/json:
          схема:
            тип: объект
            требуется:
              - лат
              - длинная
            характеристики:
              лат:
                тип: номер
              длинная:
                тип: номер
       
      Объект тела запроса

      Описывает одно тело запроса.

      Фиксированные поля
      Имя поля Тип Описание
      описание строка Краткое описание тела запроса. Это может содержать примеры использования. Синтаксис CommonMark МОЖЕТ использоваться для форматированного текстового представления.
      содержание Карта [ строка , объект типа мультимедиа] ТРЕБУЕТСЯ . Содержимое тела запроса. Ключ представляет собой тип носителя или диапазон типов носителя, а значение описывает его. Для запросов, соответствующих нескольким ключам, применим только самый конкретный ключ. например text/plain перекрывает текст/*
      требуется логическое значение Определяет, требуется ли тело запроса в запросе. По умолчанию false .

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Примеры тела запроса

      Тело запроса с определением модели, на которую ссылаются.

       {
        "description": "пользователь для добавления в систему",
        "содержание": {
          "приложение/json": {
            "схема": {
              "$ref": "#/компоненты/схемы/пользователь"
            },
            "Примеры": {
                "пользователь" : {
                  "summary": "Пример пользователя",
                  "externalValue": "http://foo.bar/examples/user-example.json"
                }
              }
          },
          "приложение/xml": {
            "схема": {
              "$ref": "#/компоненты/схемы/пользователь"
            },
            "Примеры": {
                "пользователь" : {
                  "summary": "Пример пользователя в XML",
                  "externalValue": "http://foo.bar/examples/user-example.xml"
                }
              }
          },
          "текст/обычный": {
            "Примеры": {
              "пользователь" : {
                  "summary": "Пример пользователя в текстовом формате",
                  "externalValue": "http://foo.bar/examples/user-example.txt"
              }
            }
          },
          "*/*": {
            "Примеры": {
              "пользователь" : {
                  "summary": "Пример пользователя в другом формате",
                  "externalValue": "http://foo. bar/examples/user-example.whatever"
              }
            }
          }
        }
      }
       
       описание: пользователь для добавления в систему
      содержание:
        'приложение/json':
          схема:
            $ref: '#/компоненты/схемы/пользователь'
          Примеры:
            пользователь:
              резюме: пример пользователя
              externalValue: 'http://foo.bar/examples/user-example.json'
        'приложение/xml':
          схема:
            $ref: '#/компоненты/схемы/пользователь'
          Примеры:
            пользователь:
              резюме: Пример пользователя в XML
              externalValue: 'http://foo.bar/examples/user-example.xml'
        'текст/обычный':
          Примеры:
            пользователь:
              резюме: пример пользователя в текстовом формате
              externalValue: 'http://foo.bar/examples/user-example.txt'
        '*/*':
          Примеры:
            пользователь:
              резюме: пример пользователя в другом формате
              externalValue: 'http://foo.bar/examples/user-example.whatever'
       

      Основной параметр, представляющий собой массив строковых значений:

       {
        "description": "пользователь для добавления в систему",
        "содержание": {
          "текст/обычный": {
            "схема": {
              "тип": "массив",
              "Предметы": {
                "тип": "строка"
              }
            }
          }
        }
      }
       
       описание: пользователь для добавления в систему
      требуется: правда
      содержание:
        текст/обычный:
          схема:
            тип: массив
            Предметы:
              тип: строка
       
      Объект типа носителя

      Каждый объект типа носителя предоставляет схему и примеры для типа носителя, определяемого его ключом.

      Фиксированные поля
      Имя поля Тип Описание
      схема Объект схемы | Эталонный Объект Схема, определяющая содержимое запроса, ответа или параметра.
      пример Любой Пример типа носителя. Образец объекта ДОЛЖЕН быть в правильном формате, указанном типом носителя. Поле примера является взаимоисключающим полем 9.0639 примеров полей. Кроме того, при ссылке на схему , содержащую пример, значение примера ДОЛЖНО переопределять пример , предоставленный схемой.
      примеры Карта[ строка , пример объекта | Справочный объект] Примеры типа носителя. Каждый пример объекта ДОЛЖЕН соответствовать типу носителя и указанной схеме, если она присутствует. Поле примеров является взаимоисключающим полем пример поле. Кроме того, при ссылке на схему , которая содержит пример, значение примеров ДОЛЖНО переопределять пример, предоставленный схемой.
      кодировка Карта [ строка , объект кодирования] Сопоставление между именем свойства и информацией о его кодировке. Ключ, являющийся именем свойства, ДОЛЖЕН существовать в схеме как свойство. Объект кодирования ДОЛЖЕН применяться только к requestBody , когда тип мультимедиа multipart или application/x-www-form-urlencoded .

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Примеры типов носителей
       {
        "приложение/json": {
          "схема": {
               "$ref": "#/компоненты/схемы/домашнее животное"
          },
          "Примеры": {
            "кошка" : {
              "summary": "Пример кота",
              "ценность":
                {
                  "имя": "Пушистый",
                  "petType": "Кошка",
                  "белый цвет",
                  "мужской пол",
                  "порода": "персидская"
                }
            },
            "собака": {
              "summary": "Пример собаки с кошачьим именем",
              "ценность" :  {
                "имя": "Пума",
                "petType": "Собака",
                "черный цвет",
                "женский пол",
                "порода": "Смешанная"
              },
            "лягушка": {
                "$ref": "#/компоненты/примеры/пример-лягушки"
              }
            }
          }
        }
      }
       
       приложение/json:
        схема:
          $ref: "#/компоненты/схемы/домашнее животное"
        Примеры:
          кошка:
            Резюме: Пример кота
            ценность:
              имя: Пушистый
              petType: Кошка
              белый цвет
              мужской пол
              порода: персидская
          собака:
            резюме: Пример собаки с кошачьим именем
            ценность:
              имя: Пума
              petType: Собака
              черный цвет
              женский пол
              порода: смешанная
          лягушка:
            $ref: "#/компоненты/примеры/пример-лягушки"
       
      Рекомендации по загрузке файлов

      В отличие от спецификации 2. 0, содержимое ввода/вывода файла в OpenAPI описывается той же семантикой, что и любой другой тип схемы. В частности:

       # контент, переданный с кодировкой base64
      схема:
        тип: строка
        формат: base64
       
       # контент передается в двоичном виде (октетный поток):
      схема:
        тип: строка
        формат: бинарный
       

      Эти примеры относятся либо к входным полезным нагрузкам загрузки файлов, либо к полезным нагрузкам ответа.

      requestBody для отправки файла в операции POST может выглядеть следующим образом:

       requestBody:
        содержание:
          приложение/октетный поток:
            схема:
              # бинарный файл любого типа
              тип: строка
              формат: бинарный
       

      Кроме того, МОГУТ быть указаны определенные типы носителей:

       # могут быть указаны несколько конкретных типов носителей:
      тело запроса:
        содержание:
            # бинарный файл типа png или jpeg
          'изображение/jpeg':
            схема:
              тип: строка
              формат: бинарный
          'изображение/png':
            схема:
              тип: строка
              формат: бинарный
       

      Для загрузки нескольких файлов ДОЛЖЕН использоваться тип мультимедиа multipart :

       requestBody:
        содержание:
          составные/данные формы:
            схема:
              характеристики:
                # Имя свойства 'file' будет использоваться для всех файлов. 
                файл:
                  тип: массив
                  Предметы:
                    тип: строка
                    формат: бинарный
       
      Поддержка тела запроса x-www-form-urlencoded

      можно использовать определение:

       тело запроса:
        содержание:
          приложение/x-www-форма-urlencoded:
            схема:
              тип: объект
              характеристики:
                я бы:
                  тип: строка
                  формат: UUID
                адрес:
                  # сложные типы преобразуются в строки для поддержки RFC 1866
                  тип: объект
                  характеристики: {}
       

      В этом примере содержимое requestBody ДОЛЖНО быть преобразовано в строку в соответствии с RFC1866 при передаче на сервер. Кроме того, комплексный объект поля адреса будет преобразован в строку.

      При передаче сложных объектов в типе контента application/x-www-form-urlencoded стратегия сериализации таких свойств по умолчанию описана в свойстве Encoding Object ‘s style как form .

      Особые замечания для
      multipart Content

      Обычно используется multipart/form-data как Content-Type при передаче тела запроса в операции. В отличие от 2.0, 9Схема 0639 ТРЕБУЕТСЯ для определения входных параметров операции при использовании многокомпонентного контента . Это поддерживает сложные структуры, а также поддерживает механизмы для загрузки нескольких файлов.

      При передаче типов multipart границы МОГУТ использоваться для разделения разделов передаваемого контента — таким образом, для multipart определены следующие значения по умолчанию Content-Type :

      • Если свойство является примитивным , или массив примитивных значений, Content-Type по умолчанию равен текстовый/обычный
      • Если свойство является сложным или представляет собой массив сложных значений, Content-Type по умолчанию — application/json
      • Если свойство имеет тип : строка с форматом : двоичный формат или формат : base64 (также известный как файловый объект), Content-Type по умолчанию — application/octet-stream

      Примеры:

       requestBody:
        содержание:
          составные/данные формы:
            схема:
              тип: объект
              характеристики:
                я бы:
                  тип: строка
                  формат: UUID
                адрес:
                  # Content-Type по умолчанию для объектов - `application/json`
                  тип: объект
                  характеристики: {}
                изображение профиля:
                  # Content-Type по умолчанию для строки/двоичного файла: `application/octet-stream`
                  тип: строка
                  формат: бинарный
                дети:
                  # Content-Type по умолчанию для массивов основан на `внутреннем` типе (здесь text/plain)
                  тип: массив
                  Предметы:
                    тип: строка
                адреса:
                  # Content-Type по умолчанию для массивов основан на `внутреннем` типе (показан объект, поэтому в этом примере `application/json`)
                  тип: массив
                  Предметы:
                    тип: '#/компоненты/схемы/адрес'
       

      Атрибут кодирования введен для предоставления вам контроля над сериализацией частей составных тел запросов . Этот атрибут только применим к составным телам запросов и application/x-www-form-urlencoded .

      Объект кодирования

      Одно определение кодирования, примененное к одному свойству схемы.

      Фиксированные поля
      Имя поля Тип Описание
      тип контента струна Content-Type для кодирования определенного свойства. Значение по умолчанию зависит от типа свойства: для строка с форматом является бинарным приложение/октет-поток ; для остальных типов примитивов — text/plain ; для объекта - application/json ; для массива – значение по умолчанию определяется на основе внутреннего типа. Значение может быть конкретным типом носителя (например, application/json ), тип мультимедиа с подстановочными знаками (например, image/* ) или список двух типов, разделенных запятыми.
      коллекторы Карта[ строка , Объект заголовка | Справочный объект] Карта, позволяющая предоставлять дополнительную информацию в виде заголовков, например Content-Disposition . Content-Type описывается отдельно и ДОЛЖЕН быть проигнорирован в этом разделе. Это свойство ДОЛЖНО игнорироваться, если тип носителя тела запроса не является составной .
      стиль струна Описывает, как будет сериализовано конкретное значение свойства в зависимости от его типа. Подробные сведения о свойстве стиля см. в разделе Объект параметра. Поведение соответствует тем же значениям, что и параметры запроса , включая значения по умолчанию. Это свойство ДОЛЖНО игнорироваться, если тип носителя тела запроса не application/x-www-form-urlencoded .
      взорвать логическое значение Когда это верно, значения свойства типа массива или объекта генерируют отдельные параметры для каждого значения массива или пары ключ-значение карты. Для других типов свойств это свойство не действует. Когда стиль равен форме , значением по умолчанию является true . Для всех остальных стилей значение по умолчанию — false . Это свойство ДОЛЖНО игнорироваться, если тип носителя тела запроса не равен 9.0639 приложение/x-www-form-urlencoded .
      разрешитьЗарезервировано логическое значение Определяет, СЛЕДУЕТ ли значение параметра разрешать включение зарезервированных символов, как определено в RFC3986 :/?#[]@!$&'()*+,;= , без процентного кодирования. Значение по умолчанию — false . Это свойство ДОЛЖНО игнорироваться, если тип носителя тела запроса не application/x-www-form-urlencoded .

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Пример объекта кодирования
       requestBody:
        содержание:
          составной/смешанный:
            схема:
              тип: объект
              характеристики:
                я бы:
                  # по умолчанию текстовый/обычный
                  тип: строка
                  формат: UUID
                адрес:
                  # по умолчанию это приложение/json
                  тип: объект
                  характеристики: {}
                историяМетаданные:
                  # нужно объявить формат XML!
                  описание: метаданные в формате XML
                  тип: объект
                  характеристики: {}
                изображение профиля:
                  # по умолчанию используется application/octet-stream, необходимо объявить только тип изображения!
                  тип: строка
                  формат: бинарный
            кодировка:
              историяМетаданные:
                # требуется XML Content-Type в кодировке utf-8
                ContentType: приложение/xml; кодировка = utf-8
              изображение профиля:
                # принимаем только png/jpeg
                contentType: изображение/png, изображение/jpeg
                заголовки:
                  X-Rate-Limit-Limit:
                    описание: Количество разрешенных запросов в текущем периоде
                    схема:
                      тип: целое число
       
      Responses Object

      Контейнер для ожидаемых ответов операции. Контейнер сопоставляет код ответа HTTP с ожидаемым ответом.

      Документация не обязательно должна охватывать все возможные коды ответов HTTP, поскольку они могут быть неизвестны заранее. Однако ожидается, что документация будет охватывать успешный ответ операции и любые известные ошибки.

      по умолчанию МОЖЕТ использоваться в качестве объекта ответа по умолчанию для всех кодов HTTP которые не рассматриваются отдельно в спецификации.

      Объект ответов ДОЛЖЕН содержать по крайней мере один код ответа, и он ДОЛЖЕН быть ответом на успешный вызов операции.

      Фиксированные поля
      Имя поля Тип Описание
      по умолчанию Объект ответа | Эталонный Объект Документация ответов, отличных от заявленных для конкретных кодов ответов HTTP. Используйте это поле для покрытия необъявленных ответов. Справочный объект может ссылаться на ответ, который определяется в разделе компонентов/ответов объекта OpenAPI.
      Узорчатые поля
      Узорчатые поля Тип Описание
      Код состояния HTTP Объект ответа | Эталонный Объект В качестве имени свойства можно использовать любой код состояния HTTP, но только одно свойство на код, чтобы описать ожидаемый ответ для этого кода состояния HTTP. Справочный объект может ссылаться на ответ, определенный в разделе компонентов/ответов объекта OpenAPI. Это поле ДОЛЖНО быть заключено в кавычки (например, «200») для совместимости между JSON и YAML. Чтобы определить диапазон кодов ответа, это поле МОЖЕТ содержать подстановочный знак 9 в верхнем регистре.0639 х . Например, 2XX представляет все коды ответа между [200-299] . Допускаются только следующие определения диапазона: 1XX , 2XX , 3XX , 4XX и 5XX . Если ответ определен с использованием явного кода, явное определение кода имеет приоритет над определением диапазона для этого кода.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Ответы Пример объекта

      Ответ 200 для успешной операции и ответ по умолчанию для других (подразумевающий ошибку):

       {
        "200": {
          "description": "животное, которое нужно вернуть",
          "содержание": {
            "приложение/json": {
              "схема": {
                "$ref": "#/компоненты/схемы/домашнее животное"
              }
            }
          }
        },
        "дефолт": {
          "description": "Непредвиденная ошибка",
          "содержание": {
            "приложение/json": {
              "схема": {
                "$ref": "#/компоненты/схемы/ErrorModel"
              }
            }
          }
        }
      }
       
       '200':
        описание: домашнее животное, которое нужно вернуть
        содержание:
          приложение/json:
            схема:
              $ref: '#/компоненты/схемы/домашнее животное'
      дефолт:
        описание: Непредвиденная ошибка
        содержание:
          приложение/json:
            схема:
              $ref: '#/components/schemas/ErrorModel'
       
      Response Object

      Описывает один ответ от операции API, включая время разработки, статический связывает с операциями на основе ответа.

      Фиксированные поля
      Имя поля Тип Описание
      описание струна ТРЕБУЕТСЯ . Краткое описание ответа. Синтаксис CommonMark МОЖЕТ использоваться для форматированного текстового представления.
      коллекторы Карта[ строка , Объект заголовка | Справочный объект] Сопоставляет имя заголовка с его определением. RFC7230 указывает, что имена заголовков нечувствительны к регистру. Если заголовок ответа определен с именем "Content-Type" , его ДОЛЖНО игнорировать.
      содержание Карта [ строка , объект типа мультимедиа] Карта, содержащая описания потенциальных полезных данных ответа. Ключ представляет собой тип носителя или диапазон типов носителя, а значение описывает его. Для ответов, соответствующих нескольким ключам, применим только самый конкретный ключ. например text/plain переопределяет text/*
      ссылки Карта[ строка , Объект ссылки | Справочный объект] Карта ссылок операций, по которым можно перейти из ответа. Ключ карты — это короткое имя для ссылки, соответствующее ограничениям именования имен для объектов-компонентов.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Примеры объектов ответа

      Ответ массива сложного типа:

       {
        "description": "Ответ сложного массива объектов",
        "содержание": {
          "приложение/json": {
            "схема": {
              "тип": "массив",
              "Предметы": {
                "$ref": "#/компоненты/схемы/VeryComplexType"
              }
            }
          }
        }
      }
       
       описание: Ответ массива сложных объектов
      содержание:
        приложение/json:
          схема:
            тип: массив
            Предметы:
              $ref: '#/компоненты/схемы/VeryComplexType'
       

      Ответ строкового типа:

       {
        "description": "Простой строковый ответ",
        "содержание": {
          "текст/обычный": {
            "схема": {
              "тип": "строка"
            }
          }
        }
      }
       
       описание: простой строковый ответ
      содержание:
        текст/обычный:
          схема:
            тип: строка
       

      Простой текстовый ответ с заголовками:

       {
        "description": "Простой строковый ответ",
        "содержание": {
          "текст/обычный": {
            "схема": {
              "тип": "строка",
              "пример": "вау!"
            }
          }
        },
        "заголовки": {
          "Ограничение скорости X-предела": {
            "description": "Количество разрешенных запросов в текущем периоде",
            "схема": {
              "тип": "целое число"
            }
          },
          "X-Rate-Limit-Remaining": {
            "description": "Количество оставшихся запросов в текущем периоде",
            "схема": {
              "тип": "целое число"
            }
          },
          "X-Rate-Limit-Reset": {
            "description": "Количество секунд, оставшихся до конца текущего периода",
            "схема": {
              "тип": "целое число"
            }
          }
        }
      }
       
       описание: Простой строковый ответ
      содержание:
        текст/обычный:
          схема:
            тип: строка
          пример: "уоу!"
      заголовки:
        X-Rate-Limit-Limit:
          описание: Количество разрешенных запросов в текущем периоде
          схема:
            тип: целое число
        X-Rate-Limit-Remaining:
          описание: количество оставшихся запросов в текущем периоде
          схема:
            тип: целое число
        X-Rate-Limit-Reset:
          описание: Количество секунд, оставшихся в текущем периоде
          схема:
            тип: целое число
       

      Ответ без возвращаемого значения:

       {
        "description": "объект создан"
      }
       
       описание: объект создан
       
      Объект обратного вызова

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

      Узорчатые поля
      Узорчатые поля Тип Описание
      {выражение} Объект элемента пути Объект элемента пути, используемый для определения запроса обратного вызова и ожидаемых ответов. Полный пример доступен.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Выражение ключа

      Ключ, идентифицирующий объект элемента пути, представляет собой выражение времени выполнения, которое можно оценить в контексте HTTP-запроса/ответа времени выполнения для определения URL-адреса, который будет использоваться для запроса обратного вызова. Простым примером может быть $request.body#/url . Однако с помощью выражения времени выполнения можно получить доступ к полному сообщению HTTP. Это включает в себя доступ к любой части тела, на которую может ссылаться указатель JSON RFC6901.

      Например, для следующего HTTP-запроса:

       POST /subscribe/myevent?queryUrl=http://clientdomain.com/stillrunning HTTP/1.1
      Хост: example.org
      Тип содержимого: приложение/json
      Длина контента: 187
      {
        "failedUrl": "http://clientdomain.com/failed",
        "URL-адреса успеха": [
          "http://clientdomain.com/fast",
          "http://clientdomain.com/medium",
          "http://clientdomain.com/slow"
        ]
      }
      201 Создано
      Расположение: http://example.org/subscription/1.
       

      В следующих примерах показано, как оцениваются различные выражения, при условии, что операция обратного вызова имеет параметр пути с именем eventType и параметр запроса с именем queryUrl .

      Выражение Значение
      URL-адрес $ http://example. org/subscribe/myevent?queryUrl=http://clientdomain.com/stillrunning
      $метод ПОЧТ
      $request.path.eventType мое событие
      $request.query.queryUrl http://clientdomain.com/stillrunning
      $request.header.content-Type приложение/json
      $request.body#/failedUrl http://clientdomain.com/failed
      $request.body#/successUrls/2 http://clientdomain.com/medium
      $response.header.Расположение http://example.org/subscription/1
      Примеры объектов обратного вызова

      В следующем примере используется предоставленный пользователем параметр строки запроса queryUrl для определения URL-адреса обратного вызова. Это пример того, как использовать объект обратного вызова для описания обратного вызова WebHook, который идет с операцией подписки, чтобы включить регистрацию для WebHook.

       мойОбратный звонок:
        '{$request.query.queryUrl}':
          почта:
            тело запроса:
              описание: Полезная нагрузка обратного вызова
              содержание:
                'приложение/json':
                  схема:
                    $ref: '#/компоненты/схемы/SomePayload'
            ответы:
              «200»:
                описание: обратный вызов успешно обработан
       

      В следующем примере показан обратный вызов, в котором сервер жестко закодирован, но параметры строки запроса заполняются из свойств id и email в тексте запроса.

       транзакцияОбратный вызов:
        'http://notificationServer.com?transactionId={$request.body#/id}&email={$request.body#/email}':
          почта:
            тело запроса:
              описание: Полезная нагрузка обратного вызова
              содержание:
                'приложение/json':
                  схема:
                    $ref: '#/компоненты/схемы/SomePayload'
            ответы:
              «200»:
                описание: обратный вызов успешно обработан
       
      Пример объекта
      Фиксированные поля
      Имя поля Тип Описание
      резюме струна Краткое описание примера.
      описание струна Подробное описание примера. Синтаксис CommonMark МОЖЕТ использоваться для форматированного текстового представления.
      значение Любой Пример встроенного литерала. Поле значения и поле externalValue являются взаимоисключающими. Чтобы представить примеры типов мультимедиа, которые не могут быть представлены естественным образом в JSON или YAML, используйте строковое значение, содержащее пример, с экранированием, где это необходимо.
      внешнее значение струна URL-адрес, указывающий на буквальный пример. Это дает возможность ссылаться на примеры, которые нелегко включить в документы JSON или YAML. 9Поле значения 0639 и поле externalValue являются взаимоисключающими.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Во всех случаях ожидается, что значение примера будет совместимо со схемой типа связанной с ним стоимости. Инструментальные реализации МОГУТ выбрать автоматически проверять совместимость и отклонять примеры значений, если они несовместимы.

      Пример Примеры объектов

      В теле запроса:

       запростело:
        содержание:
          'приложение/json':
            схема:
              $ref: '#/компоненты/схемы/адрес'
            Примеры:
              фу:
                резюме: пример foo
                значение: {"foo": "бар"}
              бар:
                резюме: пример бара
                значение: {"бар": "баз"}
          'приложение/xml':
            Примеры:
              xmlПример:
                резюме: это пример в XML
                externalValue: 'http://example.org/examples/address-example.xml'
          'текст/обычный':
            Примеры:
              текстПример:
                резюме: Это текстовый пример
                externalValue: 'http://foo.bar/examples/address-example.txt'
       

      В параметре:

       параметры:
        - имя: 'zipCode'
          в: 'запрос'
          схема:
            тип: 'строка'
            формат: 'почтовый индекс'
          Примеры:
            zip-пример:
              $ref: '#/компоненты/примеры/zip-пример'
       

      В ответ:

       ответов:
        «200»:
          описание: ваша автомобильная встреча была забронирована
          содержание:
            приложение/json:
              схема:
                $ref: '#/компоненты/схемы/SuccessResponse'
              Примеры:
                подтверждение-успех:
                  $ref: '#/компоненты/примеры/подтверждение успеха'
       
      Link Object

      Объект Link представляет собой возможную ссылку времени разработки для ответа. Наличие ссылки не гарантирует, что вызывающая сторона сможет успешно вызвать ее, а скорее обеспечивает известную взаимосвязь и механизм обхода между ответами и другими операциями.

      В отличие от динамических ссылок (т. е. ссылок, предоставленных в полезной нагрузке ответа), механизм связывания OAS не требует информации о ссылке в ответе среды выполнения.

      Для вычисления ссылок и предоставления инструкций по их выполнению выражение времени выполнения используется для доступа к значениям в операции и использования их в качестве параметров при вызове связанной операции.

      Фиксированные поля
      Имя поля Тип Описание
      рабочийRef струна Относительная или абсолютная ссылка URI на операцию OAS. Это поле является взаимоисключающим из operationId и ДОЛЖЕН указывать на объект операции. Относительные значения operationRef МОГУТ использоваться для обнаружения существующего объекта операции в определении OpenAPI.
      идентификатор операции струна Имя существующей разрешимой операции OAS, определенной с помощью уникального идентификатора операции . Это поле является взаимоисключающим по отношению к полю operationRef .
      параметры Карта[ строка , Любая | {выражение}] Карта, представляющая параметры для передачи в операцию, указанную с помощью operationId или идентифицированную с помощью operationRef . Ключ — это имя используемого параметра, тогда как значение может быть константой или выражением, которое нужно вычислить и передать в связанную операцию. Имя параметра можно уточнить, используя расположение параметра [{in}.]{name} для операций, использующих одно и то же имя параметра в разных местах (например, path.id).
      запростело Любой | {выражение} Буквенное значение или {выражение} для использования в качестве тела запроса при вызове целевой операции.
      описание струна Описание ссылки. Синтаксис CommonMark МОЖЕТ использоваться для форматированного текстового представления.
      сервер Объект сервера Объект сервера, который будет использоваться целевой операцией.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Связанная операция ДОЛЖНА быть идентифицирована с помощью operationRef или operationId . В случае operationId он ДОЛЖЕН быть уникальным и разрешаться в рамках документа OAS. Из-за возможного конфликта имен предпочтительным является синтаксис operationRef . для спецификаций с внешними ссылками.

      Примеры

      Вычисление ссылки из операции запроса, где $request.path.id используется для передачи параметра запроса связанной операции.

       путей:
        /пользователи/{идентификатор}:
          параметры:
          - имя: идентификатор
            в: путь
            требуется: правда
            описание: идентификатор пользователя, как userId
            схема:
              тип: строка
          получить:
            ответы:
              «200»:
                описание: возвращаемый пользователь
                содержание:
                  приложение/json:
                    схема:
                      тип: объект
                      характеристики:
                        uuid: # уникальный идентификатор пользователя
                          тип: строка
                          формат: UUID
                ссылки:
                  адрес:
                    # идентификатор операции целевой ссылки
                    идентификатор операции: getUserAddress
                    параметры:
                      # получить поле `id` из параметра пути запроса с именем `id`
                      идентификатор пользователя: $ request. path.id
        # элемент пути связанной операции
        /users/{идентификатор пользователя}/адрес:
          параметры:
          - имя: идентификатор пользователя
            в: путь
            требуется: правда
            описание: идентификатор пользователя, как userId
            схема:
              тип: строка
          # связанная операция
          получить:
            идентификатор операции: getUserAddress
            ответы:
              «200»:
                описание: адрес пользователя
       

      Если выражение среды выполнения не может быть оценено, в целевую операцию не передается значение параметра.

      Значения из тела ответа можно использовать для управления связанной операцией.

       ссылки:
        адрес:
          идентификатор операции: getUserAddressByUUID
          параметры:
            # получить поле `uuid` из поля `uuid` в теле ответа
            userUuid: $response.body#/uuid
       

      Клиенты переходят по всем ссылкам на свое усмотрение. Ни разрешения, ни возможность сделать успешный вызов по этой ссылке не гарантируются. исключительно наличием отношений.

      OperationRef Примеры

      Поскольку ссылки на operationId МОГУТ быть НЕвозможными ( operationId является необязательным поле в объекте операции), ссылки МОГУТ также быть сделаны через относительные ссылки operationRef :

      :
        Пользовательские репозитории:
          # возвращает массив '#/components/schemas/repository'
          OperationRef: '#/paths/~12. 0~1repositories~1{username}/get'
          параметры:
            имя пользователя: $response.body#/имя пользователя
       

      или абсолютная OperationRef :

       ссылки:
        Пользовательские репозитории:
          # возвращает массив '#/components/schemas/repository'
          OperationRef: 'https://na2.gigantic-server.com/#/paths/~12.0~1repositories~1{username}/get'
          параметры:
            имя пользователя: $response.body#/имя пользователя
       

      Обратите внимание, что при использовании operationRef экранированная косая черта необходима, когда используя ссылки JSON.

      Выражения среды выполнения

      Выражения среды выполнения позволяют определять значения на основе информации, которая будет доступна только в HTTP-сообщении при фактическом вызове API. Этот механизм используется объектами Link и Callback Objects.

      Выражение среды выполнения определяется следующим синтаксисом ABNF:

       выражение = ("$url" / "$method" / "$statusCode" / "$request. " / "_" / "`" / "|" / "~" / ЦИФРА / АЛЬФА
       

      Здесь json-pointer взят из RFC 6901, char из RFC 7159 и токен из RFC 7230.

      В таблице ниже приведены примеры выражений времени выполнения и примеры их использования в значении:

      Примеры
      Местоположение источника пример выражения отмечает
      Метод HTTP $метод Допустимые значения для метода $method будут такими же, как и для операции HTTP.
      Запрошенный тип носителя $request.header.accept
      Параметр запроса $request.path.id Параметры запроса ДОЛЖНЫ быть объявлены в разделе параметров родительской операции, иначе они не могут быть оценены. Сюда входят заголовки запросов.
      Свойство тела запроса $request. body#/пользователь/uuid В операциях, которые принимают полезные нагрузки, могут быть сделаны ссылки на части requestBody или все тело.
      URL запроса $ URL
      Значение ответа $response.body#/статус В операциях, которые возвращают полезные данные, могут быть сделаны ссылки на части тела ответа или на все тело.
      Заголовок ответа $response.header.Сервер Доступны только отдельные значения заголовка

      Выражения времени выполнения сохраняют тип значения, на которое указывает ссылка. Выражения можно встраивать в строковые значения, окружая выражение фигурными скобками {} .

      Объект заголовка повторяет структуру объекта параметров со следующими изменениями:

      1. название НЕ ДОЛЖНО указываться, оно указывается в соответствующем заголовки карта.
      2. в НЕ ДОЛЖНО быть указано, это неявно в заголовке .
      3. Все черты, на которые влияет местоположение, ДОЛЖНЫ быть применимы к местоположению заголовка (например, стиль ).

      Простой заголовок типа целое число :

       {
        "description": "Количество разрешенных запросов в текущем периоде",
        "схема": {
          "тип": "целое число"
        }
      }
       
       описание: Количество разрешенных запросов в текущем периоде
      схема:
        тип: целое число
       
      Объект тега

      Добавляет метаданные к одному тегу, используемому объектом операции. Не обязательно иметь объект тега для каждого тега, определенного в экземплярах объекта операции.

      Фиксированные поля
      Имя поля Тип Описание
      имя струна ТРЕБУЕТСЯ . Имя тега.
      описание струна Краткое описание тега. Синтаксис CommonMark МОЖЕТ использоваться для форматированного текстового представления.
      внешние документы Объект внешней документации Дополнительная внешняя документация для этого тега.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Пример объекта тега
       {
      "имя": "домашнее животное",
      "description": "Операции с домашними животными"
      }
       
       имя: домашнее животное
      описание: Операции с домашними животными
       
      Объект ссылки

      Простой объект, позволяющий ссылаться на другие компоненты в спецификации, как внутри, так и снаружи.

      Объект ссылки определяется ссылкой JSON и следует той же структуре, поведению и правилам.

      Для этой спецификации разрешение ссылки выполняется в соответствии со спецификацией JSON Reference, а не спецификацией JSON Schema.

      Фиксированные поля
      Имя поля Тип Описание
      $ref струна ТРЕБУЕТСЯ . Ссылочная строка.

      Этот объект не может быть дополнен дополнительными свойствами, и любые добавленные свойства ДОЛЖНЫ игнорироваться.

      Пример ссылочного объекта
       {
      "$ref": "#/компоненты/схемы/домашнее животное"
      }
       
       $ref: '#/components/schemas/Pet'
       
      Пример документа относительной схемы
       {
        "$ref": "Pet.json"
      }
       
       $ref: Pet.yaml
       
      Родственные документы со встроенной схемой Пример
       {
        "$ref": "definitions.json#/домашнее животное"
      }
       
       $ref: определения.yaml#/домашнее животное
       
      Объект схемы

      Объект схемы позволяет определять типы входных и выходных данных. Эти типы могут быть объектами, а также примитивами и массивами. Этот объект является расширенным подмножеством спецификации схемы JSON Wright Draft 00.

      Дополнительные сведения о свойствах см. в разделе Ядро схемы JSON и Проверка схемы JSON. Если не указано иное, определения свойств следуют схеме JSON.

      Свойства

      Следующие свойства взяты непосредственно из определения схемы JSON и соответствуют тем же спецификациям:

      • title
      • кратно
      • максимум
      • эксклюзивМаксимум
      • минимум
      • эксклюзивМинимум
      • максимальная длина
      • минДлина
      • Шаблон
      • (Эта строка ДОЛЖНА быть допустимым регулярным выражением в соответствии с диалектом регулярных выражений Ecma-262 Edition 5.1)
      • Максимальное количество предметов
      • минЭлементы
      • уникальных предметов
      • МаксСвойства
      • минСвойства
      • требуется
      • перечисление

      Следующие свойства взяты из определения схемы JSON, но их определения были скорректированы в соответствии со спецификацией OpenAPI.

      • тип — значение ДОЛЖНО быть строкой. Несколько типов через массив не поддерживаются.
      • allOf — встроенная или ссылочная схема ДОЛЖНА быть объектом схемы, а не стандартной схемой JSON.
      • oneOf — встроенная или ссылочная схема ДОЛЖНА быть объектом схемы, а не стандартной схемой JSON.
      • anyOf — встроенная или ссылочная схема ДОЛЖНА быть объектом схемы, а не стандартной схемой JSON.
      • нет — встроенная или ссылочная схема ДОЛЖНА быть объектом схемы, а не стандартной схемой JSON.
      • элементов — значение ДОЛЖНО быть объектом, а не массивом. Встроенная или ссылочная схема ДОЛЖНА быть объектом схемы, а не стандартной схемой JSON. элементов ДОЛЖЕН присутствовать, если тип — это массив .
      • Свойства
      • . Определения свойств ДОЛЖНЫ быть объектом схемы, а не стандартной схемой JSON (встроенной или указанной).
      • AdditionalProperties — значение может быть логическим или объектным. Встроенная или ссылочная схема ДОЛЖНА быть объектом схемы, а не стандартной схемой JSON. В соответствии со схемой JSON, AdditionalProperties по умолчанию имеет значение true .
      • Описание
      • — синтаксис CommonMark МОЖЕТ использоваться для форматированного текстового представления.
      • Формат
      • — дополнительные сведения см. в разделе «Форматы типов данных». Опираясь на определенные форматы схемы JSON, OAS предлагает несколько дополнительных предопределенных форматов.
      • по умолчанию — значение по умолчанию представляет собой то, что потребитель входных данных принял бы за значение схемы, если оно не указано. В отличие от схемы JSON, значение ДОЛЖНО соответствовать определенному типу для объекта схемы, определенного на том же уровне. Например, если типа является строкой , то по умолчанию может быть "foo" , но не может быть 1 .

      В качестве альтернативы, в любое время, когда можно использовать объект схемы, вместо него можно использовать ссылочный объект. Это позволяет ссылаться на определения вместо их встроенного определения.

      Дополнительные свойства, определенные спецификацией схемы JSON и не упомянутые здесь, строго не поддерживаются.

      Помимо полей подмножества схемы JSON, следующие поля МОГУТ использоваться для дальнейшей документации схемы:

      Фиксированные поля
      Имя поля Тип Описание
      Обнуляемый логическое значение Значение true добавляет "null" к разрешенному типу, заданному ключевым словом type , только если тип явно определен в том же объекте схемы. Другие ограничения объекта схемы сохраняют свое определенное поведение и, следовательно, могут запрещать использование null в качестве значения. Значение false оставляет указанный тип или тип по умолчанию без изменений. Значение по умолчанию — false .
      дискриминатор Дискриминатор Объект Добавляет поддержку полиморфизма. Дискриминатор — это имя объекта, которое используется для различения других схем, которые могут удовлетворять описанию полезной нагрузки. Дополнительные сведения см. в разделе Композиция и наследование.
      Только для чтения логическое значение Относится только к определениям схемы «свойства» . Объявляет свойство как «только для чтения». Это означает, что он МОЖЕТ быть отправлен как часть ответа, но НЕ ДОЛЖЕН быть отправлен как часть запроса. Если свойство помечено как readOnly , являющееся true и находится в списке required , required повлияет только на ответ. Свойство НЕ ДОЛЖНО быть помечено как только для чтения и writeOnly является истинным . Значение по умолчанию: false .
      только запись логическое значение Относится только к определениям схемы «свойства» . Объявляет свойство как «только для записи». Следовательно, он МОЖЕТ быть отправлен как часть запроса, но НЕ ДОЛЖЕН быть отправлен как часть ответа. Если свойство помечено как writeOnly , являющееся true и находится в списке обязательных , требуемый вступит в силу только по запросу. Свойство НЕ ДОЛЖНО быть помечено одновременно как readOnly и writeOnly , являющееся true . Значение по умолчанию: false .
      xml XML-объект МОЖЕТ использоваться только в схемах свойств. Это не влияет на корневые схемы. Добавляет дополнительные метаданные для описания XML-представления этого свойства.
      внешние документы Объект внешней документации Дополнительная внешняя документация для этой схемы.
      пример Любой Свойство произвольной формы, включающее пример экземпляра для этой схемы. Чтобы представить примеры, которые не могут быть представлены естественным образом в JSON или YAML, можно использовать строковое значение, содержащее пример с экранированием, где это необходимо.
      устарело логическое значение Указывает, что схема устарела и ее СЛЕДУЕТ вывести из использования. Значение по умолчанию – 9.0639 ложь .

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Состав и наследование (полиморфизм)

      Спецификация OpenAPI позволяет комбинировать и расширять определения моделей с использованием свойства allOf схемы JSON, фактически предлагая композицию модели. allOf принимает массив определений объектов, которые проверяются независимо, но вместе составляют один объект.

      Хотя композиция обеспечивает расширяемость модели, она не предполагает иерархии между моделями. Для поддержки полиморфизма спецификация OpenAPI добавляет дискриминатор поле. При использовании дискриминатор будет именем свойства, которое решает, какое определение схемы проверяет структуру модели. Таким образом, поле дискриминатора ДОЛЖНО быть обязательным полем. Есть два способа определить значение дискриминатора для наследуемого экземпляра.

      • Используйте имя схемы.
      • Переопределить имя схемы, заменив свойство новым значением. Если существует новое значение, оно имеет приоритет над именем схемы. Таким образом, встроенные определения схемы, которые не имеют заданного идентификатора, не может использоваться в полиморфизме.
      XML-моделирование

      Свойство xml позволяет использовать дополнительные определения при преобразовании определения JSON в XML. Объект XML содержит дополнительную информацию о доступных параметрах.

      Примеры объектов схемы
      Образец примитива
       {
        "тип": "строка",
        "формат": "электронная почта"
      }
       
       тип: строка
      формат: электронная почта
       
      Простая модель
       {
        "тип": "объект",
        "требуется": [
          "имя"
        ],
        "характеристики": {
          "имя": {
            "тип": "строка"
          },
          "адрес": {
            "$ref": "#/компоненты/схемы/адрес"
          },
          "возраст": {
            "тип": "целое",
            "формат": "int32",
            "минимум": 0
          }
        }
      }
       
       тип: объект
      требуется:
      - имя
      характеристики:
        имя:
          тип: строка
        адрес:
          $ref: '#/компоненты/схемы/адрес'
        возраст:
          тип: целое число
          формат: int32
          минимум: 0
       
      Модель со свойствами карты/словаря

      Для простого преобразования строки в строку:

       {
        "тип": "объект",
        "дополнительные свойства": {
          "тип": "строка"
        }
      }
       
       тип: объект
      дополнительные свойства:
        тип: строка
       

      Для сопоставления строки с моделью:

       {
        "тип": "объект",
        "дополнительные свойства": {
          "$ref": "#/компоненты/схемы/ComplexModel"
        }
      }
       
       тип: объект
      дополнительные свойства:
        $ref: '#/компоненты/схемы/ComplexModel'
       
      Модель с примером
       {
        "тип": "объект",
        "характеристики": {
          "я бы": {
            "тип": "целое",
            "формат": "int64"
          },
          "имя": {
            "тип": "строка"
          }
        },
        "требуется": [
          "имя"
        ],
        "пример": {
          "имя": "Пума",
          "идентификатор": 1
        }
      }
       
       тип: объект
      характеристики:
        я бы:
          тип: целое число
          формат: int64
        имя:
          тип: строка
      требуется:
      - имя
      пример:
        имя: Пума
        идентификатор: 1
       
      Модели с составом
       {
        "составные части": {
          "схемы": {
            "Модель ошибки": {
              "тип": "объект",
              "требуется": [
                "сообщение",
                "код"
              ],
              "характеристики": {
                "сообщение": {
                  "тип": "строка"
                },
                "код": {
                  "тип": "целое",
                  "минимум": 100,
                  "максимум": 600
                }
              }
            },
            "ExtendedErrorModel": {
              "все": [
                {
                  "$ref": "#/компоненты/схемы/ErrorModel"
                },
                {
                  "тип": "объект",
                  "требуется": [
                    "первопричина"
                  ],
                  "характеристики": {
                    "первопричина": {
                      "тип": "строка"
                    }
                  }
                }
              ]
            }
          }
        }
      }
       
       компоненты:
        схемы:
          Модель ошибки:
            тип: объект
            требуется:
            - сообщение
            - код
            характеристики:
              сообщение:
                тип: строка
              код:
                тип: целое число
                минимум: 100
                максимум: 600
          Расширенная модель ошибки:
            все:
            - $ref: '#/components/schemas/ErrorModel'
            - тип: объект
              требуется:
              - первопричина
              характеристики:
                первопричина:
                  тип: строка
       
      Модели с поддержкой полиморфизма
       {
        "составные части": {
          "схемы": {
            "Домашний питомец": {
              "тип": "объект",
              "дискриминатор": {
                "имя_свойства": "тип_питомца"
              },
              "характеристики": {
                "имя": {
                  "тип": "строка"
                },
                "тип питомца": {
                  "тип": "строка"
                }
              },
              "требуется": [
                "имя",
                "тип питомца"
              ]
            },
            "Кошка": {
              "description": "Изображение кошки.  Обратите внимание, что `Cat` будет использоваться в качестве значения дискриминатора.",
              "все": [
                {
                  "$ref": "#/компоненты/схемы/домашнее животное"
                },
                {
                  "тип": "объект",
                  "характеристики": {
                    "охотничий навык": {
                      "тип": "строка",
                      "description": "Измеренное умение для охоты",
                      "по умолчанию": "ленивый",
                      "перечисление": [
                        "невежественный",
                        "ленивый",
                        "авантюрный",
                        "агрессивный"
                      ]
                    }
                  },
                  "требуется": [
                    "охотничий навык"
                  ]
                }
              ]
            },
            "Собака": {
              "description": "Изображение собаки. Обратите внимание, что `Dog` будет использоваться в качестве значения дискриминатора.",
              "все": [
                {
                  "$ref": "#/компоненты/схемы/домашнее животное"
                },
                {
                  "тип": "объект",
                  "характеристики": {
                    "packSize": {
                      "тип": "целое",
                      "формат": "int32",
                      "description": "размер стаи, из которой собака",
                      "по умолчанию": 0,
                      "минимум": 0
                    }
                  },
                  "требуется": [
                    "Размер упаковки"
                  ]
                }
              ]
            }
          }
        }
      }
       
       компоненты:
        схемы:
          Домашний питомец:
            тип: объект
            дискриминатор:
              имя свойства: petType
            характеристики:
              имя:
                тип: строка
              тип питомца:
                тип: строка
            требуется:
            - имя
            - тип питомца
          Cat: ## "Cat" будет использоваться как значение дискриминатора
            описание: Представление кота
            все:
            - $ref: '#/components/schemas/Pet'
            - тип: объект
              характеристики:
                охотничий навык:
                  тип: строка
                  описание: Измеренное умение для охоты
                  перечисление:
                  - невежественный
                  - ленивый
                  - предприимчивый
                  - агрессивный
              требуется:
              - охотничье мастерство
          Собака: ## «Собака» будет использоваться в качестве значения дискриминатора. 
            описание: изображение собаки
            все:
            - $ref: '#/components/schemas/Pet'
            - тип: объект
              характеристики:
                размер пакета:
                  тип: целое число
                  формат: int32
                  описание: размер стаи, из которой собака
                  по умолчанию: 0
                  минимум: 0
              требуется:
              - размер упаковки
       
      Объект-дискриминатор

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

      При использовании дискриминатора встроенных схем не учитываются.

      Фиксированные поля
      Имя поля Тип Описание
      имя свойства струна ТРЕБУЕТСЯ . Имя свойства в полезных данных, которое будет содержать значение дискриминатора.
      отображение Карта [ строка , строка ] Объект для хранения сопоставлений между значениями полезной нагрузки и именами схем или ссылками.

      Объект дискриминатора допустим только при использовании одного из составных ключевых слов oneOf , anyOf , allOf .

      В OAS 3.0 полезная нагрузка ответа МОЖЕТ быть описана как ровно один из любого количества типов:

       MyResponseType:
        один из:
        - $ref: '#/components/schemas/Cat'
        - $ref: '#/компоненты/схемы/собака'
        - $ref: '#/components/schemas/Lizard'
       

      , что означает, что полезная нагрузка ДОЛЖНА при проверке соответствовать ровно одной из схем, описанных Кошка , Собака или Ящерица . В этом случае дискриминатор МОЖЕТ действовать как «подсказка» для быстрой проверки и выбора соответствующей схемы, что может быть дорогостоящей операцией, в зависимости от сложности схемы. Затем мы можем точно описать, какое поле говорит нам, какую схему использовать:

       MyResponseType:
        один из:
        - $ref: '#/components/schemas/Cat'
        - $ref: '#/компоненты/схемы/собака'
        - $ref: '#/components/schemas/Lizard'
        дискриминатор:
          имя свойства: petType
       

      Теперь ожидается, что свойство с именем petType ДОЛЖНО присутствовать в полезной нагрузке ответа , а его значение будет соответствовать имени схемы, определенной в документе OAS. Таким образом, полезная нагрузка ответа:

       {
        "идентификатор": 12345,
        "petType": "Кошка"
      }
       

      Указывает, что схема Cat должна использоваться вместе с этой полезной нагрузкой.

      В сценариях, где значение поля дискриминатора не соответствует имени схемы или неявное сопоставление невозможно, необязательный сопоставление определение МОЖЕТ использоваться:

       MyResponseType:
        один из:
        - $ref: '#/components/schemas/Cat'
        - $ref: '#/компоненты/схемы/собака'
        - $ref: '#/components/schemas/Lizard'
        - $ref: 'https://gigantic-server. com/schemas/Monster/schema.json'
        дискриминатор:
          имя свойства: petType
          сопоставление:
            собака: '#/компоненты/схемы/собака'
            монстр: 'https://gigantic-server.com/schemas/Monster/schema.json'
       

      Здесь значение дискриминатора из собака будет отображаться на схему #/components/schemas/Dog , а не на значение по умолчанию (неявное) Dog . Если значение дискриминатора не совпадает с неявным или явным сопоставлением, никакая схема не может быть определена, и проверка СЛЕДУЕТ завершиться ошибкой. Ключи сопоставления ДОЛЖНЫ быть строковыми значениями, но инструменты МОЖЕТ преобразовывать значения ответов в строки для сравнения.

      При использовании в сочетании с конструкцией anyOf использование дискриминатора позволяет избежать неоднозначности, когда несколько схем могут удовлетворять одной полезной нагрузке.

      В обоих вариантах использования oneOf и anyOf все возможные схемы ДОЛЖНЫ быть явно перечислены. Чтобы избежать избыточности, дискриминатор МОЖЕТ быть добавлен к определению родительской схемы, и все схемы, содержащие родительскую схему в конструкции allOf , могут использоваться в качестве альтернативной схемы.

      Например:

       компоненты:
        схемы:
          Домашний питомец:
            тип: объект
            требуется:
            - тип питомца
            характеристики:
              тип питомца:
                тип: строка
            дискриминатор:
              имя свойства: petType
              сопоставление:
                собака Собака
          Кошка:
            все:
            - $ref: '#/components/schemas/Pet'
            - тип: объект
              # все остальные свойства, характерные для `Cat`
              характеристики:
                имя:
                  тип: строка
          Собака:
            все:
            - $ref: '#/components/schemas/Pet'
            - тип: объект
              # все остальные свойства, характерные для `Dog`
              характеристики:
                лаять:
                  тип: строка
          Ящерица:
            все:
            - $ref: '#/components/schemas/Pet'
            - тип: объект
              # все остальные свойства, специфичные для `Lizard`
              характеристики:
                любитRocks:
                  тип: логический
       

      такая полезная нагрузка:

       {
        "petType": "Кошка",
        "имя": "туманный"
      }
       

      будет означать, что используется схема Cat . Аналогично этой схеме:

       {
        "petType": "собака",
        «кора»: «мягкая»
      }
       

      будет отображаться в Dog из-за определения в элементе mappings .

      Объект XML

      Объект метаданных, который позволяет более точно настроить определения модели XML.

      При использовании массивов имена элементов XML равны , а не (для форм единственного/множественного числа), и свойство имя СЛЕДУЕТ использовать для добавления этой информации. См. примеры ожидаемого поведения.

      Фиксированные поля
      Имя поля Тип Описание
      имя струна Заменяет имя элемента/атрибута, используемого для описываемого свойства схемы. Когда он определен в элементах , это повлияет на имена отдельных элементов XML в списке. При определении рядом с тип , являющийся массивом (вне элементов ), это повлияет на элемент упаковки, и только если обернутый равен true . Если обернутый равен false , он будет проигнорирован.
      пространство имен струна URI определения пространства имен. Значение ДОЛЖНО быть в форме абсолютного URI.
      префикс струна Префикс для имени.
      атрибут логическое значение Указывает, преобразуется ли определение свойства в атрибут, а не в элемент. Значение по умолчанию: false .
      в упаковке логическое значение МОЖЕТ использоваться только для определения массива. Указывает, является ли массив упакованным (например, ) или развернутым ( ). Значение по умолчанию: false . Определение вступает в силу только в том случае, если оно определено рядом с типом , являющимся массивом (вне элементов ).

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Примеры XML-объектов

      Примеры определений XML-объектов включены в определение свойства объекта схемы с образцом его XML-представления.

      Нет XML-элемента

      Свойство основной строки:

       {
          "животные": {
              "тип": "строка"
          }
      }
       
       животных:
        тип: строка
       
       <животные>...
       

      Основное свойство массива строк ( в оболочке по умолчанию false ):

       {
          "животные": {
              "тип": "массив",
              "Предметы": {
                  "тип": "строка"
              }
          }
      }
       
       животных:
        тип: массив
        Предметы:
          тип: строка
       
       <животные>...
      <животные>...
      <животные>...
       
      Замена имени XML
       {
        "животные": {
          "тип": "строка",
          "xml": {
            "имя": "животное"
          }
        }
      }
       
       животных:
        тип: строка
        XML:
          имя: животное
       
       <животное>. ..
       
      XML-атрибут, префикс и пространство имен

      В этом примере показано полное определение модели.

       {
        "Человек": {
          "тип": "объект",
          "характеристики": {
            "я бы": {
              "тип": "целое",
              "формат": "int32",
              "xml": {
                "атрибут": правда
              }
            },
            "имя": {
              "тип": "строка",
              "xml": {
                "пространство имен": "http://example.com/schema/sample",
                "префикс": "образец"
              }
            }
          }
        }
      }
       
       Лицо:
        тип: объект
        характеристики:
          я бы:
            тип: целое число
            формат: int32
            XML:
              атрибут: правда
          имя:
            тип: строка
            XML:
              пространство имен: http://example.com/schema/sample
              префикс: образец
       
       <Лицо>
          пример
      
       
      Массивы XML

      Изменение имен элементов:

       {
        "животные": {
          "тип": "массив",
          "Предметы": {
            "тип": "строка",
            "xml": {
              "имя": "животное"
            }
          }
        }
      }
       
       животных:
        тип: массив
        Предметы:
          тип: строка
          XML:
            имя: животное
       
       <животное>значение
      <животное>значение
       

      Внешнее свойство name не влияет на XML:

       {
        "животные": {
          "тип": "массив",
          "Предметы": {
            "тип": "строка",
            "xml": {
              "имя": "животное"
            }
          },
          "xml": {
            "имя": "инопланетяне"
          }
        }
      }
       
       животных:
        тип: массив
        Предметы:
          тип: строка
          XML:
            имя: животное
        XML:
          Название: пришельцы
       
       <животное>значение
      <животное>значение
       

      Даже если массив упакован, если имя не определено явно, одно и то же имя будет использоваться как внутри, так и снаружи:

       {
        "животные": {
          "тип": "массив",
          "Предметы": {
            "тип": "строка"
          },
          "xml": {
            "завернутый": правда
          }
        }
      }
       
       животных:
        тип: массив
        Предметы:
          тип: строка
        XML:
          завернутый: правда
       
       <животные>
        <животные>значение
        <животные>значение
      
       

      Чтобы решить проблему именования в приведенном выше примере, можно использовать следующее определение:

       {
        "животные": {
          "тип": "массив",
          "Предметы": {
            "тип": "строка",
            "xml": {
              "имя": "животное"
            }
          },
          "xml": {
            "завернутый": правда
          }
        }
      }
       
       животных:
        тип: массив
        Предметы:
          тип: строка
          XML:
            имя: животное
        XML:
          завернутый: правда
       
       <животные>
        <животное>значение
        <животное>значение
      
       

      Влияет как на внутренние, так и на внешние имена:

       {
        "животные": {
          "тип": "массив",
          "Предметы": {
            "тип": "строка",
            "xml": {
              "имя": "животное"
            }
          },
          "xml": {
            "имя": "инопланетяне",
            "завернутый": правда
          }
        }
      }
       
       животных:
        тип: массив
        Предметы:
          тип: строка
          XML:
            имя: животное
        XML:
          Название: пришельцы
          завернутый: правда
       
       <инопланетяне>
        <животное>значение
        <животное>значение
      
       

      Если мы изменим внешний элемент, но не внутренние:

       {
        "животные": {
          "тип": "массив",
          "Предметы": {
            "тип": "строка"
          },
          "xml": {
            "имя": "инопланетяне",
            "завернутый": правда
          }
        }
      }
       
       животных:
        тип: массив
        Предметы:
          тип: строка
        XML:
          Название: пришельцы
          завернутый: правда
       
       <инопланетяне>
        <инопланетяне>значение
        <инопланетяне>значение
      
       
      Объект схемы безопасности

      Определяет схему безопасности, которую могут использовать операции. Поддерживаемые схемы: HTTP-аутентификация, ключ API (в виде заголовка, параметра cookie или параметра запроса), общие потоки OAuth3 (неявные, пароль, учетные данные клиента и код авторизации), как определено в RFC6749, и OpenID Connect Discovery.

      Фиксированные поля
      Имя поля Тип Применяется к Описание
      тип струна Любой ТРЕБУЕТСЯ . Тип схемы безопасности. Допустимые значения: "apiKey" , "http" , "oauth3" , "openIdConnect" .
      описание струна Любой Краткое описание схемы безопасности. Синтаксис CommonMark МОЖЕТ использоваться для форматированного текстового представления.
      имя струна ключ API ТРЕБУЕТСЯ . Имя используемого заголовка, запроса или файла cookie.
      в струна ключ API ТРЕБУЕТСЯ . Расположение ключа API. Допустимые значения: "запрос" , "заголовок" или "cookie" .
      схема струна http ТРЕБУЕТСЯ . Имя схемы авторизации HTTP, которая будет использоваться в заголовке авторизации, как определено в RFC7235. Используемые значения СЛЕДУЕТ зарегистрировать в реестре IANA Authentication Scheme.
      форма носителя струна http ( "носитель" ) Подсказка клиенту определить, как отформатирован маркер носителя. Токены-носители обычно генерируются сервером авторизации, поэтому эта информация предназначена в первую очередь для целей документации.
      потоки Объект потоков OAuth оаут3 ТРЕБУЕТСЯ . Объект, содержащий информацию о конфигурации для поддерживаемых типов потока.
      опенидконнектурл струна опенидконнект ТРЕБУЕТСЯ . URL-адрес OpenId Connect для обнаружения значений конфигурации OAuth3. Это ДОЛЖНО быть в форме URL.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Пример объекта схемы безопасности
      Пример базовой аутентификации
       {
        "тип": "http",
        "схема": "базовая"
      }
       
       тип: http
      схема: базовая
       
      Образец ключа API
       {
        "тип": "апиКей",
        "имя": "api_key",
        "в": "заголовок"
      }
       
       тип: APIKey
      имя: API_key
      в: заголовок
       
      Образец носителя JWT
       {
        "тип": "http",
        "схема": "носитель",
        "bearerFormat": "JWT",
      }
       
       тип: http
      схема: носитель
      носительФормат: JWT
       
      Неявный образец OAuth3
       {
        "тип": "oauth3",
        "течет": {
          "скрытый": {
            "authorizationUrl": "https://example. com/api/oauth/dialog",
            "области": {
              "write:pets": "изменить питомцев в вашем аккаунте",
              "read:pets": "читать своих питомцев"
            }
          }
        }
      }
       
       тип: oauth3
      потоки:
        скрытый:
          URL-адрес авторизации: https://example.com/api/oauth/dialog
          области:
            write:pets: изменить питомцев в своей учетной записи
            read:pets: читай своих питомцев
       
      Объект потоков OAuth

      Позволяет настраивать поддерживаемые потоки OAuth.

      Фиксированные поля
      Имя поля Тип Описание
      неявный Объект потока OAuth Конфигурация для неявного потока OAuth
      пароль Объект потока OAuth Конфигурация для потока пароля владельца ресурса OAuth
      учетные данные клиента Объект потока OAuth Конфигурация потока учетных данных клиента OAuth. Ранее называвшееся приложением в OpenAPI 2. 0.
      Код авторизации Объект потока OAuth Конфигурация потока кода авторизации OAuth. Ранее назывался accessCode в OpenAPI 2.0.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Объект потока OAuth

      Сведения о конфигурации для поддерживаемого потока OAuth

      Фиксированные поля
      Имя поля Тип Применяется к Описание
      URL авторизации струна oauth3 ( "неявный" , "код авторизации" ) ТРЕБУЕТСЯ . URL-адрес авторизации, который будет использоваться для этого потока. Это ДОЛЖНО быть в форме URL.
      tokenUrl струна oauth3 ( "пароль" , "учетные данные клиента" , "код авторизации" ) ТРЕБУЕТСЯ . URL-адрес токена, который будет использоваться для этого потока. Это ДОЛЖНО быть в форме URL.
      URL-адрес обновления струна оаут3 URL-адрес, используемый для получения токенов обновления. Это ДОЛЖНО быть в форме URL.
      прицелы Карта [ строка , строка ] оаут3 ТРЕБУЕТСЯ . Доступные области для схемы безопасности OAuth3. Сопоставление между именем области действия и ее кратким описанием. Карта МОЖЕТ быть пустой.

      Этот объект МОЖЕТ быть расширен за счет расширений спецификации.

      Примеры объектов потока OAuth
       {
        "тип": "oauth3",
        "течет": {
          "скрытый": {
            "authorizationUrl": "https://example.com/api/oauth/dialog",
            "области": {
              "write:pets": "изменить питомцев в вашем аккаунте",
              "read:pets": "читать своих питомцев"
            }
          },
          "Код авторизации": {
            "authorizationUrl": "https://example. com/api/oauth/dialog",
            "tokenUrl": "https://example.com/api/oauth/токен",
            "области": {
              "write:pets": "изменить питомцев в вашем аккаунте",
              "read:pets": "читать своих питомцев"
            }
          }
        }
      }
       
       тип: oauth3
      потоки:
        скрытый:
          URL-адрес авторизации: https://example.com/api/oauth/dialog
          области:
            write:pets: изменить питомцев в своей учетной записи
            read:pets: читай своих питомцев
        Код авторизации:
          URL-адрес авторизации: https://example.com/api/oauth/dialog
          tokenUrl: https://example.com/api/oauth/token
          области:
            write:pets: изменить питомцев в своей учетной записи
            read:pets: читай своих питомцев
       
      Security Requirement Object

      Список необходимых схем безопасности для выполнения этой операции. Имя, используемое для каждого свойства, ДОЛЖНО соответствовать схеме безопасности, объявленной в схемах безопасности в объекте компонентов.

      Security Requirement Объекты, которые содержат несколько схем, требуют, чтобы все схемы ДОЛЖНЫ быть удовлетворены для авторизации запроса. Это обеспечивает поддержку сценариев, в которых для передачи информации о безопасности требуется несколько параметров запроса или заголовков HTTP.

      Когда список объектов требований безопасности определен для объекта OpenAPI или объекта операции, только один из объектов требований безопасности в списке должен быть удовлетворен для авторизации запроса.

      узорчатых поля
      Полевой узор Тип Описание
      {имя} [ строка ] Каждое имя ДОЛЖНО соответствовать схеме безопасности, которая объявлена ​​в схемах безопасности в объекте компонентов. Если схема безопасности имеет тип "oauth3" или "openIdConnect" , то значение представляет собой список имен областей, необходимых для выполнения, и этот список МОЖЕТ быть пустым, если для авторизации не требуется указанная область. Для других типов схем безопасности массив ДОЛЖЕН быть пустым.
      Примеры объектов требования безопасности
      Требование безопасности без OAuth3
       {
        "апи_ключ": []
      }
       
       API_key: []
       
      Требование безопасности OAuth3
       {
        "зоомагазин_аутент": [
          "написать: домашние животные",
          "читать: домашние животные"
        ]
      }
       
       petstore_auth:
      - напиши: домашние животные
      - читать: домашние животные
       
      Дополнительная безопасность OAuth3

      Дополнительная безопасность OAuth3, определенная в объекте OpenAPI или объекте операции:

       {
        "безопасность": [
          {},
          {
            "зоомагазин_аутент": [
              "написать: домашние животные",
              "читать: домашние животные"
            ]
          }
        ]
      }
       
       служба безопасности:
        - {}
        - petstore_auth:
          - напиши: домашние животные
          - читать: домашние животные
       

      Расширения спецификации

      Несмотря на то, что спецификация OpenAPI пытается приспособить большинство вариантов использования, в определенные моменты могут быть добавлены дополнительные данные для расширения спецификации.

      Свойства расширений реализованы в виде шаблонных полей, которые всегда имеют префикс "x-" .

      9х-
      Полевая модель Тип Описание Любой Разрешает расширения схемы OpenAPI. Имя поля ДОЛЖНО начинаться с x-, например, x-internal-id . Значение может быть null , примитивом, массивом или объектом. Может иметь любое допустимое значение формата JSON.

      Расширения могут поддерживаться или не поддерживаться доступными инструментами, но они также могут быть расширены для добавления запрошенной поддержки (если инструменты являются внутренними или открытыми).

      Безопасность Фильтрация

      Некоторые объекты в спецификации OpenAPI МОГУТ быть объявлены и оставаться пустыми или быть полностью удалены, даже если они по своей сути являются ядром документации API.

      Причина в том, чтобы обеспечить дополнительный уровень контроля доступа к документации. Хотя это и не является частью самой спецификации, некоторые библиотеки МОГУТ разрешать доступ к частям документации на основе той или иной формы аутентификации/авторизации.

      Два примера:

      1. Объект Paths МОЖЕТ быть пустым. Это может показаться нелогичным, но это может сказать зрителю, что он попал в нужное место, но не может получить доступ к какой-либо документации. У них по-прежнему будет доступ к информационному объекту, который может содержать дополнительную информацию об аутентификации.
      2. Объект элемента пути МОЖЕТ быть пустым. В этом случае зритель будет знать, что путь существует, но не сможет увидеть какие-либо его операции или параметры. Это отличается от сокрытия самого пути от объекта Paths, потому что пользователь будет знать о его существовании. Это позволяет поставщику документации точно контролировать то, что может видеть зритель.

      Приложение A: История изменений

      Версия Дата Примечания
      3. 0.3 20.02.2020 Выпуск исправления спецификации OpenAPI 3.0.3
      3.0.2 08.10.2018 Выпуск исправления спецификации OpenAPI 3.0.2
      3.0.1 06.12.2017 Выпуск исправления спецификации OpenAPI 3.0.1
      3.0.0 26.07.2017 Выпуск спецификации OpenAPI 3.0.0
      3.0.0-rc2 16.06.2017 rc2 спецификации 3.0
      3.0.0-rc1 27.04.2017 rc1 спецификации 3.0
      3.0.0-rc0 28.02.2017 Проект реализации спецификации 3.0
      2,0 31.12.2015 Пожертвование Swagger 2.0 инициативе OpenAPI
      2,0 08.09.2014 Выпуск Swagger 2.0
      1,2 14.03.2014 Первоначальный выпуск официального документа.
      1,1 22 августа 2012 г. Выпуск Swagger 1.1
      1,0 10.08.2011 Первый выпуск спецификации Swagger

      Таблица для формирования | Дизайнер форм | Руководство пользователя | Epi Info™

      Как сделать форму из таблицы данных

      Функция «Создать форму из таблицы данных» позволяет автоматически создавать форму Epi Info™ 7 на основе существующего файла базы данных. После завершения у вас будет первоначальная структура формы, которую при необходимости можно изменить. Типы полей, справочные таблицы кодов и подсказки полей могут быть указаны во время процесса. Поддерживаемые форматы включают MS Excel, MS Access, Flat ASCII, SQL Server и MySQL среди других типов.

      Допустим, у вас есть электронная таблица Excel с данными, которые вы исторически поддерживали с помощью MS Excel, но хотели бы создать проект Epi Info для сбора данных и воспользоваться преимуществами, которые можно получить от ввода данных с помощью Epi Info. 7. Эта функция позволяет пользователям делать это.

      На первом этапе вам потребуется создать проект Epi Info™ 7. При запросе имени формы назначьте любое имя форме. В конечном итоге форма будет удалена после завершения процесса импорта из файла MS Excel.

      1. В главном меню Epi Info выберите Utilities > Make Form from Data Table . Откроется диалоговое окно «Создать форму из таблицы ».
      2. Выберите нужный тип базы данных. В этом примере мы выберем рабочую книгу Microsoft MS Excel 97-2003.
      3. Перейдите к местоположению файла.
      4. Щелкните имя электронной таблицы, содержащей набор данных, который вы хотите импортировать в Epi Info™ 7.
      5. Укажите имя формы.
      1. Щелкните OK . Откроется диалоговое окно Table-to-Form .

      Отображается ряд столбцов.

      1. Нажмите Установить шрифт подсказки и Установить шрифт поля , чтобы установить шрифты для вопросов/подсказок и полей ввода соответственно.
      2. Если какой-либо из столбцов в исходной таблице должен стать типом поля Допустимое значение, щелкните Добавить исходную таблицу списка и найдите таблицу, содержащую список допустимых значений. Это понадобится ниже для Столбец ListSourceTableName .

      Вот описание каждого столбца:

      • Импорт — этот флажок позволяет выбрать, какие поля следует импортировать в форму, и отключить импорт для других полей. По умолчанию отмечены все поля.
      • Имя столбца — указывает имя столбца из исходной таблицы. Имя столбца изначально используется для имени поля и подсказки.
      • Имя поля — Имя поля изначально совпадает с именем столбца, но вы можете изменить его сейчас здесь или позже, посетив свойства поля после создания формы. Если имя поля является зарезервированным словом Epi Info, процесс Table-to-Form автоматически изменит его, добавив суффикс «_RW». Вы можете изменить это имя на что-то более релевантное.
      • Подсказка — Подсказка изначально совпадает с именем поля. Вы можете изменить его сейчас здесь или позже, посетив свойства поля.
      • Тип столбца — это тип данных, обнаруженных Epi Info™ 7.
      • Тип поля — указывает тип поля, который, вероятно, соответствует типу столбца. Например, если Epi Info™ 7 обнаружит строковые данные для типа столбца, то он предложит тип поля для хранения этих данных может быть текстовым полем. Вы можете отменить это решение, если знаете, что представляют собой данные. Например, если столбец содержит только значения «Да» и «Нет», Epi Info™ может предложить поле «Текст», но вы можете решить, что тип поля «Да-Нет» является более подходящим.
      • Страница – Для таблиц с большим количеством столбцов Epi Info™ будет размещать поля в форме в соответствии с порядком их появления в исходной таблице. Он будет складывать столько полей, сколько поместится на первой странице, затем будет продолжать добавлять страницы и поля стека по мере необходимости, чтобы разместить все столбцы. Вы можете использовать столбец «Страница», чтобы дать указание Epi Info™ хранить определенные поля вместе на определенной странице.
        Примечание. На любой странице существует ограничение примерно в 250 полей.
      • Вкладка — определяет порядок полей на странице во время ввода данных. Табуляция — если для поля будут вводиться данные, этот флажок должен оставаться отмеченным. Некоторые поля рассчитываются автоматически, поэтому для них не требуется позиция табуляции, и поэтому флажок «Позиция табуляции» должен быть снят. Когда флажок Tab Stop снят, курсор не будет перемещаться в поле во время ввода данных.
      • Только чтение — этот флажок устанавливает атрибут поля Только чтение. Если флажок установлен, поле будет отключено. По умолчанию он не отмечен.
      • Обязательный — Поля, в которых ввод данных является обязательным, должны иметь этот обязательный атрибут. По умолчанию он не отмечен.
      • Повторить последнюю — если этот флажок установлен, атрибут «Повторять последнюю» приводит к тому, что значение последней просматриваемой записи становится предварительно заполненным значением при создании новой записи. По умолчанию он не отмечен.
      • Диапазон — позволяет указать указанное значение между одним значением и другим. Если во время ввода данных вы попытаетесь ввести значение, выходящее за пределы указанного диапазона, вы получите предупреждающее сообщение о том, что значение находится вне диапазона. Отсутствующие значения принимаются. По умолчанию он не отмечен. Если вы установите флажок Диапазон, то также укажите нижний и верхний диапазоны, как описано ниже.
      • Нижний — Укажите наименьшее значение, которое можно ввести в поле.
      • Верхний — Укажите наибольшее или максимальное значение, которое может быть принято полем.
      • Имя исходной таблицы списка — если справочная таблица была импортирована с использованием параметра «Добавить исходную таблицу списка», поле можно связать с одной из импортированных таблиц. Это относится только к полям Legal Value.
      • Имя столбца исходного текста списка — если в импортированной справочной таблице доступно более одного столбца, укажите, какое имя столбца следует использовать для сопоставления с полем из таблицы.
      • Исходная таблица списка — поля можно удалить из списка полей просмотра с помощью одинарной или двойной стрелки назад.
      1. Нажмите Преобразовать , чтобы начать процесс импорта.

      Начинается процесс создания формы и импорта процесса. После завершения процесса появится сообщение «Процесс импорта таблицы в форму завершен».

       

      После завершения процесса импорта в форму можно внести некоторые изменения, такие как выравнивание, шрифт и добавление меток и заголовков. Однако не копируйте и не вставляйте поля с одной страницы на другую. Если вы намерены перемещать поля по страницам после импорта, мы настоятельно рекомендуем вам сначала удалить таблицы данных, не удаляя форму, переместить поля на нужные страницы, а затем использовать команду MERGE в Classic Analysis для объединения данных в исправленную форму. .

      Как найти или проверить адрес электронной почты

      Регулярное выражение, о котором я получаю больше всего отзывов, не говоря уже об отчетах об ошибках, это то, которое вы найдете прямо на главной странице этого сайта: \b[A-Z0 -9. _%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,}\b. Я утверждаю, что это регулярное выражение соответствует любому адресу электронной почты. Большинство отзывов, которые я получаю, опровергают это утверждение, показывая один адрес электронной почты, которому это регулярное выражение не соответствует. Обычно отчет об «ошибке» также включает предложение сделать регулярное выражение «идеальным».

      Как я объясню ниже, мое утверждение справедливо только в том случае, если вы принимаете мое определение того, что действительно является действительным адресом электронной почты, а что нет. Если вы хотите использовать другое определение, вам придется адаптировать регулярное выражение. Сопоставление действительного адреса электронной почты — прекрасный пример, показывающий, что (1) прежде чем писать регулярное выражение, вы должны точно знать, что вы пытаетесь сопоставить, а что нет; и (2) часто приходится идти на компромисс между тем, что точно, и тем, что практично.

      Преимущество моего регулярного выражения в том, что оно соответствует 99% адресов электронной почты, используемых сегодня. Все совпадающие адреса электронной почты могут быть обработаны 99% всего программного обеспечения электронной почты. Если вы ищете быстрое решение, вам нужно прочитать только следующий абзац. Если вы хотите узнать обо всех компромиссах и получить множество альтернатив на выбор, читайте дальше.

      Если вы хотите использовать приведенное выше регулярное выражение, вам нужно понять две вещи. Во-первых, длинные регулярные выражения затрудняют красивое форматирование абзацев. Поэтому я не включил az ни в один из трех классов символов. Это регулярное выражение предназначено для использования с включенной опцией «без учета регистра» вашего движка регулярных выражений. (Вы будете удивлены, сколько отчетов об ошибках я получаю по этому поводу.) Во-вторых, приведенное выше регулярное выражение ограничено границами слов, что делает его пригодным для извлечения адресов электронной почты из файлов или больших блоков текста. Если вы хотите проверить, ввел ли пользователь действительный адрес электронной почты, замените границы слов якорями начала и конца строки, например: ^[A-Z0-9. _%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,}$.

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

      Компромиссы при проверке адресов электронной почты

      До того, как ICANN предоставила любой хорошо финансируемой компании возможность создавать свои собственные домены верхнего уровня, самыми длинными доменами верхнего уровня были редко используемые .museum и .travel, которые состоят из 6 букв. длинная. Наиболее распространенные домены верхнего уровня имели длину 2 буквы для доменов для конкретной страны и 3 или 4 буквы для доменов общего назначения, таких как .com и .info. Многие регулярные выражения для проверки адресов электронной почты, которые вы найдете в различных руководствах и справочниках по регулярным выражениям, по-прежнему предполагают, что домен верхнего уровня довольно короткий. В более ранних выпусках этого руководства по регулярным выражениям упоминалось \b[A-Z0-9. _%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b в качестве регулярного выражения для адресов электронной почты во введении. Между этим регулярным выражением и тем, что вверху этой страницы, есть только одно небольшое отличие. 4 в конце регулярного выражения ограничивает домен верхнего уровня 4 символами. Если вы используете это регулярное выражение с якорями для проверки адреса электронной почты, введенного в форму заказа, [email protected] должен делать покупки в другом месте. Да, TLD .solutions существует, и когда я пишу это, disapproved.solutions может стать вашим за 16,88 долларов в год. 9[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,63}$ — это то, на что вы практически способны. Каждая часть доменного имени не может быть длиннее 63 символов. Однозначных доменов верхнего уровня не существует, и ни один из них не содержит цифр. Не похоже, что ICANN также одобрит такие домены.

      Адреса электронной почты могут находиться на серверах в субдомене, например [email protected] Все приведенные выше регулярные выражения соответствуют этому адресу электронной почты, потому что я поставил точку в классе символов после символа @. Но приведенные выше регулярные выражения также соответствуют [email protected], что недопустимо из-за последовательных точек. Вы можете исключить такие совпадения, заменив [A-Z0-9[A-Z0-9._%+-]{1,64}@(?:[A-Z0-9-]{1,63}\.){1,125}[A-Z]{2,63}$ занимает принимая во внимание, что локальная часть (перед @) ограничена 64 символами и что каждая часть доменного имени ограничена 63 символами. Прямого ограничения на количество поддоменов нет. Но максимальная длина адреса электронной почты, который может обрабатываться SMTP, составляет 254 символа. Таким образом, с односимвольной локальной частью, двухбуквенным доменом верхнего уровня и односимвольными поддоменами 125 — это максимальное количество поддоменов.

      Предыдущее регулярное выражение на самом деле не ограничивает адреса электронной почты 254 символами. Если каждая часть имеет максимальную длину, регулярное выражение может сопоставлять строки длиной до 8129 символов. Вы можете уменьшить это количество, уменьшив количество разрешенных субдоменов со 125 до чего-то более реалистичного, например, 8. [A-Z0-9(?=[A-Z0-9][[email protected]_%+-]{5,253}$)
      [A-Z0-9._%+-]{1,64}@(?: [A-Z0-9-]{1,63}\.){1,8}[A-Z]{2,63}$

      Доменные имена могут содержать дефисы. Но они не могут начинаться или заканчиваться дефисом. [A-Z0-9](?:[A-Z0-9-]{0,62}[A-Z0-9])? соответствует доменному имени длиной от 1 до 63 символов, которое начинается и заканчивается буквой или цифрой. Незахватывающая группа делает середину домена и последнюю букву или цифру необязательными в целом, чтобы гарантировать, что мы разрешаем односимвольные домены, в то же время гарантируя, что домены с двумя или более символами не заканчиваются дефисом. Общее регулярное выражение становится довольно сложным: 9[A-Z0-9][A-Z0-9._%+-]{0,63}@
      (?:[A-Z0-9](?:[A-Z0-9-]{0, 62}[A-Z0-9])?\.){1,8}[A-Z]{2,63}$

      Доменные имена не могут содержать дефисы подряд. [A-Z0-9]+(?:-[A-Z0-9]+)* соответствует доменному имени, которое начинается и заканчивается буквой или цифрой и содержит любое количество не следующих друг за другом дефисов. Это самый эффективный способ. Это регулярное выражение не выполняет поиск с возвратом для соответствия допустимому доменному имени. Он соответствует всем буквам и цифрам в начале имени домена. Если дефисов нет, следующая необязательная группа немедленно завершается ошибкой. Если есть дефисы, группа соответствует каждому дефису, за которым следуют все буквы и цифры до следующего дефиса или конца доменного имени. Мы не можем установить максимальную длину, когда дефис должен быть в паре с буквой или цифрой, но буквы и цифры могут стоять сами по себе. Но мы можем использовать метод упреждающего просмотра, который мы использовали для принудительной установки общей длины адреса электронной почты, чтобы обеспечить длину доменного имени и запретить последовательные дефисы: (?=[A-Z0-9-]{1,63}\.)[A-Z0-9]+(?:-[A-Z0-9]+)*. Обратите внимание, что просмотр вперед также проверяет наличие точки, которая должна стоять после доменного имени, если оно полностью определено в адресе электронной почты. Это важно. Без проверки точки поиск вперед будет принимать более длинные доменные имена. Поскольку поиск вперед не использует текст, которому он соответствует, точка не включается в общее совпадение этого регулярного выражения. Когда мы поместим это регулярное выражение в общее регулярное выражение для адресов электронной почты, точка будет соответствовать тому, что было в предыдущих регулярных выражениях: 9(?=[A-Z0-9][[email protected]_%+-]{5,253}$)[A-Z0-9._%+-]{1,64}@
      (?: (?=[A-Z0-9-]{1,63}\.)[A-Z0-9]+(?:-[A-Z0-9]+)*\.){1,8}[ A-Z]{2,63}$

      На современном ПК или сервере это регулярное выражение отлично работает при проверке одного 254-символьного адреса электронной почты. Отклонение более длинных входных данных было бы даже быстрее, потому что регулярное выражение завершится ошибкой, если просмотр вперед завершится ошибкой во время первого прохода. Но я бы не рекомендовал использовать такое сложное регулярное выражение для поиска адресов электронной почты в большом архиве документов или корреспонденции. Вам лучше использовать простое регулярное выражение в верхней части этой страницы, чтобы быстро собрать все, что похоже на адрес электронной почты. [A-Z0-9(?=[A-Z0-9][[email protected]_%+-]{5,253}+$)[A-Z0-9._%+-]{1,64}[email protected]
      ( ?:(?=[A-Z0-9-]{1,63}+\.)[A-Z0-9]++(?:-[A-Z0-9]++)*+\.) {1,8}+[A-Z]{2,63}+$

      Важным компромиссом во всех этих регулярных выражениях является то, что они позволяют использовать только английские буквы, цифры и наиболее часто используемые специальные символы. Основная причина в том, что я не верю, что все мои почтовые программы способны справиться с чем-то еще. Несмотря на то, что John.O'[email protected] является синтаксически допустимым адресом электронной почты, существует риск того, что некоторые программы неправильно интерпретируют апостроф как разделительную кавычку. Слепая вставка этого адреса электронной почты в SQL-запрос, например, в лучшем случае приведет к сбою, когда строки заключены в одинарные кавычки, а в худшем случае откроет ваш сайт для атак SQL-инъекций.

      И, конечно же, доменные имена уже много лет могут содержать неанглийские символы. Но большая часть программного обеспечения по-прежнему придерживается 37 символов, к которым привыкли западные программисты. Поддержка интернационализированных доменов открывает целую банку червей в отношении того, как следует кодировать символы, отличные от ASCII. Поэтому, если вы используете любое из регулярных выражений на этой странице, любому, у кого есть адрес @ทีเอชนิค.ไทย, не повезет. Но, возможно, это говорит о том, что http://ทีเอชนิค.ไทย просто перенаправляет на http://thnic.co.th, хотя они занимаются продажей доменов .ไทย.

      Вывод таков: чтобы решить, какое регулярное выражение использовать, пытаетесь ли вы сопоставить адрес электронной почты или что-то еще, что определено нечетко, вам нужно начать с рассмотрения всех компромиссов. Насколько плохо сопоставлять что-то, что недействительно? Насколько плохо не соответствовать чему-то действительному? Насколько сложным может быть ваше регулярное выражение? Насколько дорого это обойдется, если вам придется изменить регулярное выражение позже, потому что оно окажется слишком широким или слишком узким? Различные ответы на эти вопросы потребуют различных регулярных выражений в качестве решения. Мое регулярное выражение электронной почты делает то, что я хочу, но может не делать то, что вы хотите.

      Регулярные выражения не отправляют электронную почту

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

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

      Официальный стандарт: RFC 5322

      Возможно, вам интересно, почему не существует «официального» надежного регулярного выражения для сопоставления адресов электронной почты. Ну, есть официальное определение, но вряд ли оно надежное.

      Официальный стандарт известен как RFC 5322. Он описывает синтаксис, которого должны придерживаться действительные адреса электронной почты. Вы можете (но не должны — читайте дальше) реализовать это с помощью следующего регулярного выражения. RFC 5322 оставляет часть имени домена открытой для конкретных вариантов реализации, которые сегодня не будут работать в Интернете. Регулярное выражение реализует «предпочтительный» синтаксис из RFC 1035, который является одной из рекомендаций в RFC 5322: 9_‘{|}~-]+)*
       | "(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]
            |  \\[\x01-\x09\x0b\x0c\x0e-\ x7f])*")
      @ (?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\. )+[a-z0 -9](?:[a-z0-9-]*[a-z0-9])?
        |  \[(?:(?:25[0-5]|2[0-4][0- 9]|[01]?[0–9][0–9]?)\.){3}
             (?:25[0–5]|2[0–4][0–9]|[01 ]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:
                (?:[\x01-\x08\x0b\x0c\x0e-\x1f \x21-\x5a\x53-\x7f]
                |  \\[\x01-\x09\x0b\x0c\x0e-\x7f])+)
           \])\z

      Это регулярное выражение состоит из двух частей: часть до @ и часть после @. Есть две альтернативы для части перед @. Первый вариант позволяет ему состоять из ряда букв, цифр и определенных символов, включая одну или несколько точек. Однако точки могут не появляться последовательно или в начале или в конце адреса электронной почты. Другой вариант требует, чтобы часть перед @ была заключена в двойные кавычки, позволяя любую строку символов ASCII между кавычками. Символы пробела, двойные кавычки и обратные косые черты должны быть экранированы обратными косыми чертами.

      Часть после символа @ также имеет два варианта. Это может быть либо полное доменное имя (например, регулярные-выражения. info), либо буквальный интернет-адрес в квадратных скобках. Буквальный интернет-адрес может быть либо IP-адресом, либо адресом маршрутизации для конкретного домена.

      Причина, по которой вам не следует использовать это регулярное выражение, заключается в том, что оно слишком широкое. Ваше приложение может не поддерживать все адреса электронной почты, разрешенные этим регулярным выражением. Адреса маршрутизации для конкретного домена могут содержать непечатаемые управляющие символы ASCII, что может вызвать проблемы, если вашему приложению необходимо отображать адреса. Не все приложения поддерживают синтаксис локальной части с использованием двойных кавычек или квадратных скобок. Фактически, сам RFC 5322 помечает нотацию с использованием квадратных скобок как устаревшую. 9_'{|}~-]+)*@
      (?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a -z0-9](?:[a-z0-9-]*[a-z0-9])?\z

      Ни одно из этих регулярных выражений не налагает ограничений на длину всего адреса электронной почты, локальной части или доменных имен. . RFC 5322 не устанавливает ограничений по длине. Это связано с ограничениями других протоколов, таких как протокол SMTP, для фактической отправки электронной почты. В RFC 1035 указано, что длина домена не должна превышать 63 символа, но это не включено в спецификацию синтаксиса. Причина в том, что настоящий регулярный язык не может одновременно применять ограничение длины и запрещать последовательные дефисы. Но современные разновидности регулярных выражений не совсем регулярны, поэтому мы можем добавить проверки ограничения длины с помощью упреждающего просмотра, как мы делали раньше: 9_'{|}~-]+)*
      @ (?:(?=[a-z0-9-]{1,63}\.)[a-z0-9](?:[a-z0- 9-]*[a-z0-9])?\.)+
        (?=[a-z0-9-]{1,63}\z)[a-z0-9](?:[a- z0-9-]*[a-z0-9])?\z

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

      | Быстрый старт | Учебник | Инструменты и языки | Примеры | Ссылка | Обзоры книг |

      | Примеры регулярных выражений | Числовые диапазоны | Числа с плавающей запятой | Адреса электронной почты | IP-адреса | Действительные даты | Числовые даты в текст | Номера кредитных карт | Сопоставление полных строк | Удаление повторяющихся строк | Программирование | Два близких слова |

      | Катастрофический возврат | Слишком много повторений | Отказ в обслуживании | Делаем все необязательным․| Группа повторного захвата | Смешивание Unicode и 8-бит |

      Как составить электронное письмо с бизнес-запросом с образцами и шаблонами

      Вы когда-нибудь находили написание бизнес-запроса сложным? Ты не одинок. Это может быть утомительно, но написание вежливых и профессиональных электронных писем с деловыми запросами является важным навыком в современной трудовой жизни.

      Хорошо написанный деловой запрос, ясный и краткий, поможет эффективно передать ваш запрос. Это должно обеспечить быстрый ответ со всей информацией, необходимой для выполнения вашей работы.

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

      Мы также познакомим вас с форматом электронных писем с деловыми запросами, предоставим вам образцы и покажем, как отправлять их с уверенностью и быстрее благодаря нашему шаблону электронных писем с деловыми запросами.

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

      Чтобы быстрее писать качественные бизнес-запросы, попробуйте Flowrite :

      Что такое бизнес-запрос?

      Давайте начнем с определения того, что такое бизнес-запрос.

      Запрос – это запрос информации.

      Деловой запрос — это официальный запрос информации от организации.

      Некоторые из причин, по которым вы можете захотеть отправить электронное письмо с деловым запросом, включают: 

      • Запрос каталога, цен или информации о продукте
      • Запрос сведений об услуге
      • Запрос образца продукта
      • Запрос наличия места, например, в гостинице или на выставке.

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

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

      Итак, вам нужно сделать запрос о бизнесе. Конечно, вы можете просто отправить кому-нибудь сообщение и сказать: «Вы можете отправить мне XXX» или «Я хочу YYY». Однако это может повредить вашей репутации и любой компании, которую вы представляете.

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

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

      Основной принцип электронной почты заключается в том, чтобы общаться с «ясностью и сочувствием», — говорит эксперт по коммуникациям и автор Harvard Business Review Эрика Дхаван. Ее совет заключается в том, что вы должны замедлиться и сосредоточиться как на том, что вы говорите, так и на том, как вы это говорите, иначе вы можете повлиять на восприятие вас бизнесом.

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

      Как написать электронное письмо с деловым запросом – полное руководство

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

      Кому адресована ваша электронная почта для деловых запросов?

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

      Ключевой вопрос: вы пишете на личную почту или на корпоративную?

      Многие организации имеют общий адрес электронной почты для запросов (например, [email protected] или [email protected]). При письме на такие адреса электронной почты вы должны быть формальными и прямыми. По сути, вы обращаетесь к организации.

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

      Советуем быть осторожными. Лучше быть формальным, чем неформальным. Таким образом, вы избегаете риска расстроить или обидеть кого-либо.

      Нужны еще советы по этикету электронной почты? Тогда наш путеводитель по правилам электронной почты и этикету.

      Стандартный формат электронной почты для деловых запросов

      Профессиональный бизнес-запрос следует традиционному формату, в котором четко указывается, что вы хотите. В нем есть пять ключевых аспектов: 

      1. Тема электронного письма для запроса
      2. Приветствие
      3. Текст
      4. Закрытие
      5. Подписание/подпись

      Давайте подробно рассмотрим различные части идеального формата электронного письма для деловых запросов.

      1. Тема сообщения электронной почты для запроса

      При написании электронного письма с деловыми запросами старайтесь, чтобы тема сообщения была короткой, приятной и прямолинейной. Лучшая тема электронного письма для запроса — короткая, вежливая и профессиональная.

      Мы подробно рассмотрим некоторые примеры электронных писем с деловыми запросами позже, но сосредоточимся на том, чтобы в них было как можно меньше слов.

      2. Приветствие

      Здесь важно соблюдать формальности. Если вы не общаетесь с человеком по имени, избегайте «Привет», «Привет» или «Здравствуйте» и придерживайтесь проверенных формальных приветствий, таких как «Дорогой».

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

      3. Тело

      Тело — это основная часть вашего сообщения, в котором вы делаете запрос. Основной принцип при создании электронного письма для деловых запросов — сразу переходить к делу.

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

      Чтобы получить ответ, важно, чтобы сообщение было кратким, приятным и прямолинейным. Это также снижает риск непонимания.

      Предположим, вы запрашиваете несколько частей информации одновременно в своем электронном письме с запросом, например, запрос сведений о ряде продуктов. В этом случае вы можете использовать маркеры, чтобы сделать ваши запросы более четкими, сохраняя при этом небольшое количество слов.

      4. Завершение

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

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

      5. Подпись/подпись 

      Не забудьте добавить соответствующую подпись (с уважением, искренне или аналогичную) и подпись, содержащую все ваши данные, включая имя, должность и контактные данные.

      Если вы просите кого-то отправить вам что-то по почте, убедитесь, что ваш адрес правильный.

      Хотите узнать больше о том, как отправить запрос по электронной почте? Прочтите наше руководство о том, как профессионально завершить электронное письмо.

      Рекомендации по составлению бизнес-запросов 

      Вдохновленные Harvard Business Review, мы разработали пять рекомендаций по написанию электронных запросов для деловых целей. Следуйте им, и каждый информационный запрос будет передан четко и эффективно.

      1. Адаптируйте сообщение
      2. Объясните, кто вы
      3. Четко объясните, чего вы хотите, когда и почему
      4. Будьте кратки и лаконичны
      5. Проверьте (затем проверьте еще раз)

      Давайте рассмотрим эти рекомендации более подробно.

      1. Адаптируйте сообщение

      Люди в бизнесе находятся под давлением, поэтому, чем быстрее вы сможете добраться до сути и конкретнее, тем больше вероятность, что вы получите ответ.

      Как мы объяснили выше, деловые запросы являются формальным общением, поэтому будьте вежливы и профессиональны, а не пытайтесь быть дружелюбным.

      Использование стандартного шаблона, взятого с веб-сайта, может неточно передавать или передавать нужное вам сообщение.

      Усовершенствованные инструменты поддержки письма, такие как Flowrite, помогут вам найти свой подлинный голос. Это дает вам возможность создавать индивидуальные бизнес-запросы, которые являются вежливыми, профессиональными и с большей вероятностью дадут быстрый ответ.

      2. Объясните, кто вы

      Когда вы пишете электронное письмо с деловым запросом или запросите информацию, важно, кто вы. Не бросайтесь сразу в свой запрос. Вместо этого скажите читателю, кто вы.

      Это дает читателю представление о человеке, с которым он общается, и почему он должен относиться к вам серьезно.

      3. Четко объясните, чего вы хотите, когда и почему

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

      Главный вывод: отправляя электронное письмо с деловым запросом, четко указывайте информацию, которую вы запрашиваете, когда она вам нужна и, что особенно важно, для чего.

      По словам Эйвери Бланк из Forbes, четкое понимание того, что вам нужно и почему, уменьшает путаницу и повышает вероятность того, что вы получите ответ. Преимущество в том, что вы сэкономите время, усилия и потенциальное смущение, связанное с необходимостью отправки дополнительного запроса.

      Clarity также может защитить вас от получения сотен холодных электронных писем или звонков. Если вы хотите получить ответ по электронной почте, скажите об этом. Если вы ожидаете телефонного звонка, попросите его.

      Не заставляйте человека сомневаться.

      4. Будьте краткими и понятными 

      Бизнесмены заняты, поэтому пишите кратко.

      Какой длины должно быть ваше сообщение?

      Специалисты Hubspot рекомендуют, чтобы ваше электронное письмо содержало от 50 до 125 слов. Хотя может быть невозможно ограничить ваше сообщение 125 словами, в идеале оно должно быть менее 200 слов.

      5. Проверьте это (затем проверьте еще раз) 

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

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

      Во избежание проблем попробуйте инструмент для письма с искусственным интеллектом, такой как Flowrite, который понимает, к кому вы обращаетесь, и цель вашего сообщения.

      Когда я должен ответить на запрос о бизнесе?

      Если вы следовали нашим советам и рекомендациям, приведенным выше, скорее всего, вы получите ответ. Однако, если вы все еще ждете, можно отправить электронное письмо с напоминанием.

      Мы рассмотрели здесь как создавать электронные письма с напоминаниями , но остается вопрос: когда отправлять электронное письмо с напоминанием о бизнес-запросе?

      Если ваш запрос не является срочным, дайте человеку хотя бы пару дней, чтобы ответить вам. В экстренных случаях вы можете отправить электронное письмо или даже позвонить раньше.

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

      Примеры электронных писем с деловыми запросами

      Итак, мы изложили основные принципы создания идеального электронного письма с деловыми запросами. Тем не менее, всегда полезно увидеть их на практике.

      Чтобы помочь объяснить некоторые основные моменты, мы создали несколько примеров электронных писем с деловыми запросами ниже.

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

      Более того, использование Flowrite — это самый простой и быстрый способ написания электронных писем с деловыми запросами. С помощью последних разработок в области искусственного интеллекта наш инструмент может генерировать аутентичные и персонализированные электронные письма, которые гарантируют, что вы получите необходимую информацию.

      Электронная почта для организации

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

      Кому:

      [email protected]

      Запрос: Sunset Productions - каталог 2022

      Уважаемый господин/госпожа,

      Меня зовут Сьюзан Деллер, я работаю в Energy Drive. Мы заинтересованы в вашем ассортименте канцелярских товаров и хотели бы узнать больше.

      Пожалуйста, не могли бы вы отправить мне каталог 2022 года на этот адрес электронной почты? Мы находимся в процессе обновления наших канцелярских принадлежностей и собираемся сделать заказ в ближайшие две недели.

      В настоящее время мы разговариваем с несколькими поставщиками, и я свяжусь с вами в свое время, если мы захотим разместить заказ.

      С уважением,
      Сьюзан Деллер

      Электронное письмо физическому лицу

      Формат этого примера электронного письма с деловым запросом по существу такой же, как и первый, но он персонализирован для получателя. Когда вы создаете личную связь, вы увеличиваете шансы на ответ. Опять же, вы увидите, как мы управляем ожиданиями в конце электронного письма вежливо, но твердо.

      Кому:

      [email protected]

      Запрос: Sunset Productions - каталог 2022

      Дорогая Сара,

      Меня зовут Сьюзан Деллер, я работаю в Energy Drive. Мы заинтересованы в вашем ассортименте канцелярских товаров и хотели бы узнать больше.

      Пожалуйста, не могли бы вы отправить мне каталог 2022 года на этот адрес электронной почты? Мы находимся в процессе обновления наших канцелярских принадлежностей и собираемся сделать заказ в ближайшие две недели.

      В настоящее время мы разговариваем с несколькими поставщиками, и я свяжусь с вами в свое время, если мы захотим разместить заказ.

      С уважением,
      Сьюзан Деллер

      Запрос подробной информации

      В этом примере нам нужна дополнительная информация, которая позволит нам принять решение о покупке. Таким образом, вместо длинного, растянутого сообщения маркированные списки поясняют, что нам нужно, когда и почему.

      Кому:

      [email protected]

      Запрос: C4 Председатель

      Дорогая Сара,

      Меня зовут Сьюзан Деллер, я работаю в Energy Drive. Мы заинтересованы в вашем ассортименте канцелярских товаров и хотели бы узнать больше о стуле C4.

      Мои конкретные вопросы заключаются в следующем:

      • Стул доступен в разных цветах или только черный?
      • Нужно ли собирать стул или он поставляется полностью собранным?
      • Если мы закажем более одного стула, сможем ли мы получить оптовую скидку?

      Мы собираемся сделать заказ на этой неделе, поэтому я был бы признателен за ответ до среды, 12 июня. Если вам нужны какие-либо подробности от меня, пожалуйста, напишите мне здесь, и я отвечу как можно скорее.

      С уважением,
      Сьюзан Деллер

      Написание с помощью шаблона электронного письма с бизнес-запросом Flowrite

      Flowrite — это инструмент для письма с искусственным интеллектом, который превращает короткие маркеры в полноценные электронные письма и сообщения. Вы просто записываете пару предложений в качестве инструкций, выбираете правильный шаблон и смотрите, как пишется электронное письмо.

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

      Как видите, электронная почта, которую Flowrite генерирует для вас, является персонализированной и контекстно-зависимой. Кроме того, вам не нужно зацикливаться на том, как получатель может воспринять выбор слов или фраз, поскольку вы можете выбрать тон сгенерированного электронного письма. Орфографические и грамматические ошибки? Он также свободно говорит по-английски. Синдром пустого экрана? Выберите шаблон, не указывая никаких пунктов, и Flowrite сгенерирует для вас образец электронного письма.

      Что я должен вынести из этого?

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

      Добавить комментарий

      Ваш адрес email не будет опубликован.

      Copyright © 2022
      Дропшиппинг в России.
      Сообщество поставщиков дропшипперов и интернет предпринимателей.
      Все права защищены.
      ИП Калмыков Семен Алексеевич. ОГРНИП: 313695209500032.
      Адрес: ООО «Борец», г. Москва, ул. Складочная 6 к.4.
      E-mail: [email protected] Телефон: +7 (499) 348-21-17