Как я могу обрабатывать ответ JSON в Moqui внутри перехода?

76
11

Я на самом деле делаю вызов JSON-RPC для перехода от AngularJS. Поскольку типом содержимого запроса является application/json, входные параметры автоматически становятся доступными в контексте, поэтому мне не нужно обращаться с ним явно.

Вот мой запрос к 'getUsers', который находится в компоненте 'tutorial'.

function($scope, $http) {
$http ({
url: 'tutorial/getUsers',
method: "POST",
data: JSON.stringify({username:'demouser1'}),
headers: {'Content-Type': 'application/json'}

}).success(function(response){
$scope.userList = response;
});
}]);

Код перехода указан ниже

<transition name="getUsers">
<actions>
<service-call name="Tutorial.PartyServices.get#Users" in-map="context"/>
</actions>
<default-response type="none"/>
</transition>

Служба выглядит так:

<service verb="get" noun="Users">
<in-parameters>
<parameter name="username"/>
</in-parameters>
<actions>
<entity-find entity-name="PersonAndUserAccount" list="userList">
<search-form-inputs default-order-by="firstName,lastName,username"/>
<econdition field-name="username" operator="equals" to-field-name="username"/>
</entity-find>
<script>ec.web.sendJsonResponse(userList)</script>
</actions>
</service>

Теперь, чтобы отправить ответ JSON, я написал ec.web.sendJsonResponse(userList) в самой службе. Это делает сервис тесно связанным с сервисными вызовами, которые ожидают JSON в качестве ответа. Если я хочу внутренне вызвать эту услугу, то есть в Моки я должен будет определить другую услугу.

Итак, мой вопрос: могу ли я обработать этот ответ при переходе, который выполняет этот служебный вызов?

спросил(а) 2021-01-19T14:27:11+03:00 2 месяца, 3 недели назад
1
Решение
97

Вот пример, доступный для упоминания ответа JSON в переходах. Вы можете ссылаться на ExampleApp.xml.

Вот фрагмент кода для вашей справки.

<transition name="ExampleEntity" method="post">
<service-call name="org.moqui.example.ExampleServices.createExample" in-map="ec.web.parameters"
web-send-json-response="true"/>
<default-response type="none"/>
</transition>

НТН.

благодаря

ответил(а) 2021-01-19T14:27:11+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема