Создайте поля URL для хранения адресов веб-сайтов и ссылок
Пользовательские поля URL позволяют вам хранить адреса веб-сайтов и ссылки в ваших записях. Они идеально подходят для отслеживания веб-сайтов проектов, ссылок на справочные материалы, URL документации или любых веб-ресурсов, связанных с вашей работой.
Простой пример
Создайте простое поле URL:
mutation CreateUrlField($projectId: String!) {
createCustomField(
projectId: $projectId
input: {
name: "Project Website"
type: URL
}
) {
id
name
type
}
}
Расширенный пример
Создайте поле URL с описанием:
mutation CreateDetailedUrlField($projectId: String!) {
createCustomField(
projectId: $projectId
input: {
name: "Reference Link"
type: URL
description: "Link to external documentation or resources"
}
) {
id
name
type
description
}
}
Входные параметры
CreateCustomFieldInput
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
name |
String! | ✅ Да | Отображаемое имя поля URL |
type |
CustomFieldType! | ✅ Да | Должен быть URL |
description |
String | Нет | Текст помощи, отображаемый пользователям |
Примечание: projectId
передается как отдельный аргумент в мутацию, а не как часть входного объекта.
Установка значений URL
Чтобы установить или обновить значение URL в записи:
mutation SetUrlValue {
setTodoCustomField(input: {
todoId: "todo_123"
customFieldId: "field_456"
text: "https://example.com/documentation"
})
}
Параметры SetTodoCustomFieldInput
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
todoId |
String! | ✅ Да | ID записи для обновления |
customFieldId |
String! | ✅ Да | ID пользовательского поля URL |
text |
String! | ✅ Да | URL-адрес для хранения |
Создание записей с URL-значениями
При создании новой записи с URL-значениями:
mutation CreateRecordWithUrl {
createTodo(input: {
title: "Review documentation"
todoListId: "list_123"
customFields: [{
customFieldId: "url_field_id"
value: "https://docs.example.com/api"
}]
}) {
id
title
customFields {
id
customField {
name
type
}
text
}
}
}
Поля ответа
Ответ TodoCustomField
Поле | Тип | Описание |
---|---|---|
id |
String! | Уникальный идентификатор для значения поля |
customField |
CustomField! | Определение пользовательского поля |
text |
String | Сохраненный URL-адрес |
todo |
Todo! | Запись, к которой принадлежит это значение |
createdAt |
DateTime! | Когда значение было создано |
updatedAt |
DateTime! | Когда значение было в последний раз изменено |
Проверка URL
Текущая реализация
- Прямой API: В настоящее время проверка формата URL не применяется
- Формы: Проверка URL запланирована, но в настоящее время не активна
- Хранение: В любых строковых значениях можно хранить в полях URL
Запланированная проверка
Будущие версии будут включать:
- Проверка протокола HTTP/HTTPS
- Проверка корректного формата URL
- Проверка доменных имен
- Автоматическое добавление префикса протокола
Рекомендуемые форматы URL
Хотя в настоящее время это не применяется, используйте эти стандартные форматы:
https://example.com
https://www.example.com
https://subdomain.example.com
https://example.com/path
https://example.com/path?param=value
http://localhost:3000
https://docs.example.com/api/v1
Важные примечания
Формат хранения
- URL хранятся как простой текст без изменений
- Нет автоматического добавления протокола (http://, https://)
- Чувствительность к регистру сохраняется как введено
- Кодирование/декодирование URL не выполняется
Прямой API против Форм
- Формы: Запланирована проверка URL (в настоящее время не активна)
- Прямой API: Нет проверки - можно хранить любой текст
- Рекомендация: Проверяйте URL в вашем приложении перед хранением
Поля URL против текстовых полей
- URL: Семантически предназначены для веб-адресов
- TEXT_SINGLE: Общий текст в одной строке
- Backend: В настоящее время идентичное хранение и проверка
- Frontend: Разные компоненты UI для ввода данных
Необходимые разрешения
Операции с пользовательскими полями используют разрешения на основе ролей:
Действие | Необходимая роль |
---|---|
Create URL field | OWNER or ADMIN role in the project |
Update URL field | OWNER or ADMIN role in the project |
Set URL value | User must have edit permissions for the record |
View URL value | User must have view permissions for the record |
Примечание: Разрешения проверяются на основе ролей пользователей в проекте, а не конкретных констант разрешений.
Ответы на ошибки
Поле не найдено
{
"errors": [{
"message": "Custom field not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Проверка обязательного поля (только формы)
{
"errors": [{
"message": "This field is required",
"extensions": {
"code": "VALIDATION_ERROR"
}
}]
}
Лучшие практики
Стандарты формата URL
- Всегда включайте протокол (http:// или https://)
- Используйте HTTPS, когда это возможно, для безопасности
- Проверяйте URL перед хранением, чтобы убедиться, что они доступны
- Рассмотрите возможность использования сокращенных URL для отображения
Качество данных
- Проверяйте URL в вашем приложении перед хранением
- Проверяйте на наличие распространенных опечаток (отсутствующие протоколы, неправильные домены)
- Стандартизируйте форматы URL в вашей организации
- Учитывайте доступность и доступность URL
Соображения безопасности
- Будьте осторожны с URL, предоставленными пользователями
- Проверяйте домены, если ограничиваете доступ к определенным сайтам
- Рассмотрите возможность сканирования URL на наличие вредоносного контента
- Используйте URL с HTTPS при работе с конфиденциальными данными
Фильтрация и поиск
Поиск по содержимому
Поля URL поддерживают поиск по подстроке:
query SearchUrls {
todos(
customFieldFilters: [{
customFieldId: "url_field_id"
operation: CONTAINS
value: "docs.example.com"
}]
) {
id
title
customFields {
text
}
}
}
Возможности поиска
- Нечувствительное к регистру сопоставление подстрок
- Частичное сопоставление домена
- Поиск по пути и параметрам
- Нет фильтрации по протоколу
Общие случаи использования
-
Управление проектами
- Веб-сайты проектов
- Ссылки на документацию
- URL репозиториев
- Демонстрационные сайты
-
Управление контентом
- Справочные материалы
- Ссылки на источники
- Медиа-ресурсы
- Внешние статьи
-
Поддержка клиентов
- Веб-сайты клиентов
- Документация по поддержке
- Статьи базы знаний
- Видеоуроки
-
Продажи и маркетинг
- Веб-сайты компаний
- Страницы продуктов
- Маркетинговые материалы
- Профили в социальных сетях
Интеграционные функции
С использованием справок
- Ссылки на URL из других записей
- Поиск записей по домену или шаблону URL
- Отображение связанных веб-ресурсов
- Агрегация ссылок из нескольких источников
С использованием форм
- Компоненты ввода, специфичные для URL
- Запланированная проверка на правильный формат URL
- Возможности предварительного просмотра ссылок (frontend)
- Отображение кликабельных URL
С использованием отчетности
- Отслеживание использования URL и паттернов
- Мониторинг неработающих или недоступных ссылок
- Классификация по домену или протоколу
- Экспорт списков URL для анализа
Ограничения
Текущие ограничения
- Нет активной проверки формата URL
- Нет автоматического добавления протокола
- Нет проверки ссылок или доступности
- Нет сокращения или расширения URL
- Нет генерации фавиконов или предварительных просмотров
Ограничения автоматизации
- Не доступны в качестве триггерных полей автоматизации
- Не могут использоваться в обновлениях полей автоматизации
- Могут быть упомянуты в условиях автоматизации
- Доступны в шаблонах электронной почты и вебхуках
Общие ограничения
- Нет встроенной функциональности предварительного просмотра ссылок
- Нет автоматического сокращения URL
- Нет отслеживания кликов или аналитики
- Нет проверки срока действия URL
- Нет сканирования вредоносных URL
Будущие улучшения
Запланированные функции
- Проверка протокола HTTP/HTTPS
- Пользовательские шаблоны проверки regex
- Автоматическое добавление префикса протокола
- Проверка доступности URL
Потенциальные улучшения
- Генерация предварительного просмотра ссылок
- Отображение фавиконов
- Интеграция сокращения URL
- Возможности отслеживания кликов
- Обнаружение неработающих ссылок
Связанные ресурсы
- Текстовые поля - Для текстовых данных, не относящихся к URL
- Поля электронной почты - Для адресов электронной почты
- Обзор пользовательских полей - Общие концепции
Миграция с текстовых полей
Если вы мигрируете с текстовых полей на поля URL:
- Создайте поле URL с тем же именем и конфигурацией
- Экспортируйте существующие текстовые значения для проверки их корректности как URL
- Обновите записи, чтобы использовать новое поле URL
- Удалите старое текстовое поле после успешной миграции
- Обновите приложения, чтобы использовать компоненты UI, специфичные для URL
Пример миграции
# Step 1: Create URL field
mutation CreateUrlField {
createCustomField(input: {
name: "Website Link"
type: URL
projectId: "proj_123"
}) {
id
}
}
# Step 2: Update records (repeat for each record)
mutation MigrateToUrlField {
setTodoCustomField(input: {
todoId: "todo_123"
customFieldId: "new_url_field_id"
text: "https://example.com" # Value from old text field
})
}