Zapier ленивая загрузка выбора полей ввода - PullRequest
0 голосов
/ 21 сентября 2018

Я создаю приложение Zapier для платформы с динамическими полями.У меня есть API, который возвращает список полей для одного из моих ресурсов (например):

[
  { name: "First Name", key: "first_name", type: "String" },
  { name: "Civility", key: "civility", type: "Multiple" }
]

Я строю inputFields своего действия на основе этого API:

create: {
  [...],
  operation: {
    inputFields: [
      fetchFields()
    ],
    [...]
  },
}

API возвращает тип, представляющий собой список значений (то есть: Civility), но чтобы получить эти значения, я должен сделать еще один вызов API.

Пока что я сделал в своей функции fetchFields, каждый раз, когда я сталкиваюсь с type: "Multiple", я делаю еще один вызов API, чтобы получить возможные значения и установить его как choices во входных данных.поле.Однако это дорого, и страница на Zapier занимает слишком много времени для отображения полей.

Я пытался использовать функцию z.dehydrate, предоставляемую Zapier, но она не работает для ввода choices.

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

Какие есть варианты в этом случае?

1 Ответ

0 голосов
/ 25 сентября 2018

Дэвид здесь, из команды Zapier Platform.

Спасибо, что написали!Я думаю, что вы делаете, возможно, но я также не на 100% понимаю, что вы спрашиваете.

Вы можете иметь несколько вызовов API в функции (что звучит так, как вы).В конце функция должна вернуть массив Field объектов (как описано здесь ).

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

В противном случае, я думаю, что функция, которая выполняет 2 вызова API (один для извлечения типов полей, а другая - для превращения их в объекты Zapier field) - лучшая ставка.

Если это не ответило на ваш вопрос, не стесняйтесь писать по электронной почте partners@zapier.com или присоединяйтесь к slack org (ссылка внизу readme), и мы постараемся решить его там.

...