Входные и выходные данные

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

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

Входные данные

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

Примеры использования входных данных
  • Отобразить текст в задании. Добавьте во входные данные поле text с типом строка. Затем в интерфейсе задания (в блоке HTML) вы сможете добавить этот текст в качестве переменной, например:
    <p>Прочитайте текст: {{text}}</p>
  • Загрузить файл в задание, например картинку. Добавьте во входные данные поле url с типом ссылка. Затем добавьте компонент Картинка в интерфейс задания (в блок HTML) и укажите имя поля в атрибуте src:
    {{img src=url width="400px" height="300px"}}
Примечание. Не дублируйте входные данные в выходных — в результатах вы получите все данные, включая входные.

Выходные данные

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

Примеры использования выходных данных
  • Попросить исполнителя ввести текст. Добавьте в выходные данные поле input с типом строка. Сделайте поле обязательным. Затем добавьте компонент Поле для ввода текста в интерфейс задания (в блок HTML) и укажите имя поля в атрибуте name:
    {{field type="textarea" name="input" width="270px" rows=5}} 
  • Попросить выбрать одно из значений. Добавьте в выходные данные поле result с типом строка. Сделайте поле обязательным и укажите допустимые значения Yes и No. Затем добавьте компонент Переключатель в интерфейс задания (в блок HTML) и укажите имя поля в атрибуте name:
    {{field type="radio" name="result" label="Да" value="Yes" hotkey="1"}}
    {{field type="radio" name="result" label="Нет" value="No" hotkey="2"}}

Как настраивать спецификацию

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

Чтобы добавить поле в обычном режиме, нажмите кнопку Добавить поле.

Чтобы редактировать существующее поле, наведите курсор на поле и нажмите кнопку .

Рекомендации

  • Если вы редактируете обязательные поля, изменения применятся только к новым пулам заданий. Например, если вам пришлось исправить ошибку в проекте, клонируйте пул или создайте новый. Существующие пулы заданий будут работать в соответствии со старой версией проекта.

  • В выходных данных используйте проверку значений и не забывайте помечать поле обязательным, если исполнитель всегда должен заполнить его.
  • Делайте поле скрытым, если не хотите, чтобы исполнители могли получить к нему доступ. Это возможно даже если вы не отображаете это поле в интерфейсе. Для этого добавьте в режиме JSON параметр "hidden": true.

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

Параметры полей в спецификации

Параметр

Параметр в JSON

Описание

Название

id

Идентификатор поля. Допустимы латинские буквы, цифры, дефис и нижнее подчеркивание.

Тип

type

Тип данных:

  • строка — string;

  • ссылка — url;

  • логический — boolean;

  • число — number;

  • дробное число — float;

  • файл — file;
  • географические координаты — coordinates;

  • объект JSON — json.

Для массивов в режиме JSON к типу добавляется префикс array_. Например: array_file.

Обязательное поле

required

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

Обязательность ответа исполнителя для выходных данных.

По умолчанию поле необязательное — false.

Скрытое поле

hidden

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

Например, вы можете скрыть идентификатор assigment_id, который вам понадобится при выполнении отложенной приемки в отдельном проекте.

По умолчанию поле открытое — false.

Массив array_<тип> Массив объектов одного типа. Используется, например, для загрузки нескольких фотографий исполнителем.

В режиме JSON массив — это отдельный тип данных. Например: "type": "array_file".

Мин. элементов

min_size Минимальное число элементов в массиве.
Макс. элементов max_size Максимальное число элементов в массиве.

Допустимые значения

allowed_values

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

Мин. длина

min_length

Минимальная длина строки.

Макс. длина

max_length Максимальная длина строки

Мин. значение

min_value Минимальное значений для дробных и целых чисел.

Макс. значение

max_value Максимальное значений для дробных и целых чисел.
Текущее положение

current_location

Сохранение текущих координат исполнителя (true/false). Только для типа данных coordinates. Используется в заданиях для мобильного приложения.

По умолчанию false.

pattern

Регулярное выражение, которому должна соответствовать строка. Параметр можно настроить в режиме JSON.

Примеры полей в формате JSON

Текст в разных форматах
  • Только русские буквы и цифры
    "my_ru_string": {
        "type": "string",
        "required": true,
        "min_length": 10,
        "max_length": 100,
        "pattern": "[а-яА-Я0-9]+"
    }
    Скопировано
  • Только латинские буквы и цифры
    "my_en_string": {
        "type": "string",
        "required": true,
        "min_length": 10,
        "max_length": 100,
        "pattern": "[a-zA-Z0-9]+"
    }
    Скопировано
  • Буквы и символы без цифр
    "my_number_string": {
        "type": "string",
        "required": true,
        "min_length": 10,
        "max_length": 100,
        "pattern": "[^0-9]+"
    }
    Скопировано
  • Ссылка с определенного сайта
    "my_url": {
        "type": "string",
        "required": true,
        "pattern": "(?:http(?:s)?:\\/\\/)?(?:[a-zA-z-]+(\\.)+)*(?:yandex\\.ru){1}(\\/|\\/[a-zA-Z-\\._~:/\\?#\\[\\]@!\\$&'\\(\\)\\*\\+,;=]+)?"
    }
    Скопировано
  • Номер телефона с символами +, - и пробелом
    "my_phone_string": {
        "type": "string",
        "required": true,
        "pattern": "\\+?[0-9\\s-]{4,}"
    }
    Скопировано
  • Электронная почта с символами @, - и .
    "my_mail_string": {
        "type": "string",
        "required": true,
        "pattern": "[a-zA-Z]{1}[a-zA-Z0-9\\.\\-_]+@[a-zA-Z0-9\\.\\-_]+\\.[a-zA-Z]{2,}"
    }
    Скопировано
  • Месяц
    "my_month_string": {
        "type": "string",
        "required": true,
        "allowed_values": ["январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь" "ноябрь", "декабрь"]
    }
    Скопировано
Ссылка
"my_url": {
    "type": "url",
    "required": true
}
Скопировано
Логический тип данных
"my_boolean": {
    "type": "boolean",
    "required": true
}
Скопировано
Числа
  • Целое число из указанного диапазона:
    "my_integer": {
        "type": "integer",
        "required": true,
        "min_value": 1,
        "max_value": 100
    }
    Скопировано
  • Целое число со списком допустимых значений:
    "my_integer": {
        "type": "integer",
        "required": true,
        "allowed_values": [10, 20, 30]
    }
    Скопировано
  • Дробное число:
    "my_float": {
        "type": "float",
        "required": true,
        "min_value": 10.11,
        "max_value": 65.51
    }
    Скопировано
  • Число с 0, 1 или 2 знаками после запятой.

    Для этого надо выбрать тип строка и проверять с помощью регулярного выражения. Обратите внимание, что разделитель дробной части — запятая:
    "my_mail_string": {
        "type": "string",
        "required": true,
        "pattern": "^([0-9]+)(,([0-9]){1,2})?$"
    }
    Скопировано
Файл
"my_file": {
    "type": "file",
    "required": true
}
Скопировано
Массив файлов
"my_file_array": {
    "type": "array_file",
    "required": true,
    "max_size": 5
}
Скопировано
Географические координаты
"my_coordinates": {
    "type": "coordinates",
    "required": true
}
Скопировано
JSON
"my_json": {
    "type": "json",
    "required": true
}
Скопировано
Скрытое поле
Строка, к которой исполнитель не сможет получить доступ:
"my_string": {
    "type": "string",
    "hidden": true
}