Отправка запроса на внешнюю службу отдыха с использованием Django - используйте возвращенную json для обновления модели - PullRequest
0 голосов
/ 22 апреля 2020

Мне требуется несколько советов о том, как лучше реализовать следующие детали с помощью Camunda Rest API и Django:

1) Пользователю предоставляется форма - выбирает детали, а затем выполняет запрос POST для camunda, использующий 'http://localhost: 8080 / двигатель-покой / определение процесса / ключ / Process_B_PerProject / start '

детали, отправленные в этом запросе POST, состоят из 3 переменных в JSON RAW: в виде:

{"variables":
    {"UserID" : {"value" : "user.", "type": "String"},
     "OrganisationID" : {"value" : "some value", "type": "String"}
    },
     "businessKey" : "SomeBusinessKey"
    }

из views.py

из django .shortcuts рендеринга из django .views.generi c импорта TemplateView из. импорт форм StartProject

 import requests

 class StartProcessView(TemplateView):

    template_name = 'startdeliveryphase.html'

    def get(self, request):
        form = StartProject()
        return render(request, self.template_name, {'form':form})





    def post(self,request):
        form = StartProject()
        url = "http://localhost:8080/engine-rest/process-definition/key/Process_B_PerProject/start"
        payload = "{\"variables\":\r\n    {\"Username\" : {\"value\" : \"[form.Username]\", \"type\": \"String\"},\r\n     \"OrganisationInitiating\" : {\"value\" : \"[form.OrganisationInitiator]\", \"type\": \"String\"}},\r\n     \"businessKey\" : {form.businessKey}\r\n    }"
        headers = {
        'Content-Type': 'application/json'
        }
        response = requests.request("POST", url, headers=headers, data = payload)
        return render(response, self.template_name, {'form':form})

Ответ возвращается как 200 вместе с полезной нагрузкой JSON в форме:

 {
    "links": [
        {
            "method": "GET",
            "href": "http://localhost:8080/engine-rest/process-instance/fbff8359-84cd-11ea-a2e1-00155d891509",
                "rel": "self"
            }
        ],
        "id": "fbff8359-84cd-11ea-a2e1-00155d891509",
        "definitionId": "Process_B_PerProject:1:71921815-737c-11ea-91a6-00155d891509",
        "businessKey": "SomeBusinessKey",
        "caseInstanceId": null,
        "ended": false,
        "suspended": false,
        "tenantId": null
}

Вопрос 1 - из этой части - как мне получить переменные из формы в полезную нагрузку: метод, который я попробовал, получает ответ 500 - так что здесь что-то идет не так.

Вопрос 2 - каков метод использования ответа для обновления модели?

1 Ответ

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

Вопрос 1: Используйте response.json(), чтобы получить json из ответа, обзор Запрос сделать c

Вопрос 2: Для сохранения используйте create or update method Создать или обновление django

...