Как я могу передать сложные объекты в качестве ввода при использовании Cadence CLI? - PullRequest
1 голос
/ 19 апреля 2020

Вот пример рабочего процесса и его входная структура:

func MyWorkflow(ctx cadence.Context, input MyWorkflowParameters) error {
    ...
}

type MyWorkflowParameters struct {
    SomeString: string,
    SomeInteger: int32
} 

Как лучше всего передать вышеуказанную сложную структуру в качестве параметра input инструменту Cadence CLI при запуске или сигнализации рабочего процесса?

1 Ответ

0 голосов
/ 19 апреля 2020

Параметр input инструмента командной строки Cadence принимает значения в нескольких различных форматах в зависимости от того, что ожидает ваш рабочий процесс. Вот примеры для трех случаев:

1. Одиночные целые числа или строки:

--input 12345
--input “my-string"

2. Сложные объекты:

Когда параметр является структурой, как в вашем примере, вам нужно передать действительный кодированный JSON объект, как в следующем примере:

- input ' {"SomeString": "my-string", "SomeInteger": 12345} '

3. Несколько параметров:

Если у вас есть рабочий процесс, который ожидает несколько параметров, вам нужно передать одну строку с пробелом , где каждая часть строки соответствует определенному ожидаемому параметру рабочим процессом. В приведенном ниже примере показано, как можно последовательно передать одно целое число, одну строку и один параметр структуры:

--input '12345 "second param" {"SomeString":"my-string","SomeInteger":12345}'

В связанной заметке рекомендуемый способ приема входных параметров в рабочий процесс использует один параметр структуры. Несмотря на то, что syntacti c sugar в JSON немного загрязняет команду CLI, особенно когда все, что вам нужно передать, - это один параметр, он окупается, когда вы начинаете передавать больше параметров в рабочий процесс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...