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

Если для базы настроен webhook, то при каждом изменении содержимого базы отправляется HTTP-запрос. Так, например, следующие изменения вызывают срабатывание веб-крючка:

  • Добавляется или дублируется новый ряд.
  • Строка удаляется.
  • Содержимое строки изменяется.
{
  "event": "update",
  "data": {
    "dtable_uuid": "fae0a3a42ba94df88e8303fd385e37de",
    "row_id": "Fk-i7xZGS5iA5aSvaG5HAA",
    "op_user": "4bc9a7c79c5942c5b6238413f2132bea@auth.local",
    "op_type": "insert_row",
    "op_time": 1649922777.279,
    "table_id": "9g8f",
    "table_name": "Opportunities",
    "row_name": "",
    "row_data": []
  }
}
{
  "event": "update",
  "data": {
    "dtable_uuid": "fae0a3a42ba94df88e8303fd385e37de",
    "row_id": "QoNno3QiTF26sxmG1sl3_g",
    "op_user": "4bc9a7c79c5942c5b6238413f2132bea@auth.local",
    "op_type": "modify_row",
    "op_time": 1649929622.589,
    "table_id": "9g8f",
    "table_name": "Opportunities",
    "row_name": "",
    "row_data": [{
      "column_key": "589r",
      "column_name": "Prio",
      "column_type": "single-select",
      "column_data": {
        "options": [{
          "name": "++",
          "color": "#F4667C",
          "textColor": "#FFFFFF",
          "id": "381992"
        },
        {
          "name": "+",
          "color": "#FBD44A",
          "textColor": "#FFFFFF",
          "id": "830278"
        }
      ]},
      "value": "381992",
      "old_value": ""
    }]
  }
}
{
  "event": "update",
  "data": {
    "dtable_uuid": "fae0a3a42ba94df88e8303fd385e37de",
    "row_id": "QoNno3QiTF26sxmG1sl3_g",
    "op_user": "4bc9a7c79c5942c5b6238413f2132bea@auth.local",
    "op_type": "delete_row",
    "op_time": 1649929650.668,
    "table_id": "9g8f",
    "table_name": "Opportunities",
    "row_name": "",
    "row_data": []
  }
}

Запрос, отправляемый webhook, всегда содержит значения “event” и “data”. В настоящее время значение “событие” - это всегда “обновление”. В будущем, возможно, сюда будут добавлены и другие значения.

Значение “data” содержит массив с последующими элементами. Они перечислены в следующей таблице:

Значение Тип Пример
dtable_uuid Строка (32) fae0a3a42ba94df88e8303fd385e37de
row_id Струна (22) QoNno3QiTF26sxmG1sl3_g
op_user Строка (32) + “auth.local” 4bc9a7c79c5942c5b6238413f2132bea@auth.local
op_type вставитьстроку, delete_row, изменитьстроку вставить_строку
оп_время Временная метка 1649929650.668
идентификатор таблицы Струна (4) 9g8f
имя_стола Строка Задачи
имя_строки Строка
данные строки Объект { … }
op_app Строка Имя токена API

Вооружившись этой структурой, вы теперь можете разработать свой собственный интерфейс Webhook.