Темный режим

API Translations Workflow

1. Обзор workflow

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

Названиеapi-translations
База данныхPostgreSQL (таблица translations)
Методы1 webhook-узел с тремя вариантами выборки

2. GET /translations/get

Получение переводов с возможностью фильтрации по ключу и/или типу.

Цепочка выполнения:

  1. Webhook (translations/get)

    Принимает POST-запрос с параметрами:

    • query.key - ключ перевода (опциональный)
    • query.type - тип перевода (опциональный)
  2. Edit Fields1

    Извлекает параметры из запроса:

    query.key = $json.query.key
    query.type = $json.query.type
  3. Code

    Анализирует входные параметры и определяет тип запроса:

    Логика работы:

    # Перебираем входные данные
    for item in _input.all():
        # Проверяем наличие параметров внутри item['json']['query']
        query = item['json']['query']
        if 'key' in query and query['key'] is not None and 'type' in query and query['type'] is not None:
            # Если оба параметра заданы и имеют значения
            item['json']['switch'] = 2
        elif 'key' in query and query['key'] is not None:
            # Если только key задан
            item['json']['switch'] = 1
        elif 'type' in query and query['type'] is not None:
            # Если только type задан
            item['json']['switch'] = 3
        else:
            # Если key и type отсутствуют или их значения равны null
            item['json']['switch'] = 0

    Результат - добавление поля switch с числовым значением:

    • 0 - нет параметров
    • 1 - только key
    • 2 - key и type
    • 3 - только type

  4. Switch

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

    • switch == 1: выборка по ключу
    • switch == 2: выборка по ключу и типу
    • switch == 3: выборка по типу
  5. Ветка 1 (switch == 1 - только key):

    1. Postgres

      Выполняет запрос поиска по ключу:

      SELECT "key", "ru"
      FROM translations
      WHERE "key" = $1;

      Параметр: {{ $json.query.key }}

    2. Respond to ai/get

      Возвращает найденные переводы в формате:

      [
        {
          "key": "welcome_message",
          "ru": "Добро пожаловать"
        }
      ]
  6. Ветка 2 (switch == 2 - key и type):

    1. Postgres1

      Выполняет запрос поиска по ключу и типу:

      SELECT "key", "ru"
      FROM translations
      WHERE "key" = $1
        AND "type" = $2;

      Параметры: {{ $json.query.key }}, {{ $json.query.type }}

    2. Respond to ai/get

      Возвращает найденные переводы.

  7. Ветка 3 (switch == 3 - только type):

    1. Postgres2

      Выполняет запрос поиска по типу:

      SELECT "key", "ru"
      FROM translations
      WHERE "type" = $1;

      Параметр: {{ $json.query.type }}

    2. Respond to ai/get

      Возвращает все переводы указанного типа.

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

1. Запрос с ключом:

POST /translations/get
{
    "query": {
        "key": "welcome_message"
    }
}

Ответ:

[
  {
    "key": "welcome_message",
    "ru": "Добро пожаловать"
  }
]

2. Запрос с ключом и типом:

POST /translations/get
{
    "query": {
        "key": "button",
        "type": "ui"
    }
}

Ответ:

[
  {
    "key": "button.save",
    "ru": "Сохранить"
  },
  {
    "key": "button.cancel",
    "ru": "Отмена"
  }
]

3. Запрос только с типом:

POST /translations/get
{
    "query": {
        "type": "email"
    }
}

Ответ:

[
  {
    "key": "email.subject.welcome",
    "ru": "Добро пожаловать в нашу систему"
  },
  {
    "key": "email.subject.reset_password",
    "ru": "Сброс пароля"
  }
]