Django viewflows - определение потока API

У меня конечная точка API, /api/create/. Это создает новую запись в БД в зависимости от полезной нагрузки, полученной от клиента.

Payload - { 
'field1': 'value1`,
'field2': 'value2`,
'field3': 'value3`,
'field4': 'value4`,
'type': 'A'
}

Теперь, в зависимости от type, у меня есть особый рабочий процесс. Например: - Type A необходимо выполнить определенные задачи перед сохранением данных, Type B имеет свой собственный набор операций.

У меня нет пользовательского интерфейса, только запросы, поступающие по запросу POST. Как я могу использовать django-viewflows для такого случая использования?

ОБНОВЛЕНО

Мне удалось запустить рабочий процесс программно, используя WorkFlowClass.start.run(). Он отлично запускает рабочий процесс. Однако это не полный рабочий процесс. После завершения Node1 (запуска) рабочего процесса он не переходит на Node2. Это означает, что вызывается только первая задача рабочего процесса, а не последующие задачи.

Вот мой рабочий процесс.

class FunctionFlow1(Flow):
    start = flow.StartFunction(function1) \
        .Next(this.task2)
    task2 = flow.StartFunction(function2) \
        .Next(this.end)
    end = flow.End()

@flow_start_func
def function1(activation, **kwargs):
    print('Func1 Called.')
    activation.prepare()
    activation.done()
    return activation

@flow_start_func
def function1(activation, **kwargs):
    print('Func2 Called.')
    activation.prepare()
    activation.done()
    return activation

task2 не называется. Почему?


person PythonEnthusiast    schedule 14.02.2018    source источник


Ответы (1)


Вы можете использовать пакет viewflow.rest для создания REST API. Пожалуйста, посмотрите демонстрационный проект и прочтите документацию по потоку.

Обратите внимание, что эта функция доступна только в версии PRO.

https://github.com/viewflow/cookbook/tree/master/react_ui

http://docs.viewflow.io/viewflow_rest.html

Пакет viewflow.rest предоставляет реализацию потока с интерфейсом REST.

person notionquest    schedule 14.02.2018
comment
Привет, я смог запустить программно, используя WorkFlowClass.start.run(). Он отлично запускает рабочий процесс. Но после завершения Node1 он не переходит к Node2 того же рабочего процесса. Это означает, что вызывается только первая задача рабочего процесса, а не последующая задача. - person PythonEnthusiast; 28.02.2018
comment
Как убедиться, что все задачи рабочего процесса выполняются? - person PythonEnthusiast; 28.02.2018
comment
Кому-нибудь привести? - person PythonEnthusiast; 24.05.2018