Zapier ленивая загрузка выбора полей ввода
Я создаю приложение 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 ответ
Дэвид здесь, из команды Zapier Platform.
Спасибо, что написали в! Я думаю, что вы делаете, возможно, но я также не на 100% понимаю, что вы спрашиваете.
Вы можете иметь несколько вызовов API в функции (что звучит так, как вы). В конце функция должна вернуть массив Field
объекты (как описано здесь).
Ключевым моментом, о котором вы можете не знать, является то, что последующие шаги имеют доступ к частично заполненному bundle.inputData
Таким образом, вы можете иметь первую функцию, которая получает параметры поля и позволяет пользователю что-то выбирать, а затем вторую функцию, которая запускается и извлекает поля на основе этого выбора.
В противном случае, я думаю, что функция выполняет 2 вызова API (один для извлечения типов полей и один, чтобы превратить их в Zapier field
объекты) это лучшая ставка.
Если это не ответило на ваш вопрос, не стесняйтесь писать по электронной почте partners@zapier.com или присоединяйтесь к slack org (ссылка внизу readme), и мы постараемся решить его там.