我如何在过渡中处理 Moqui 中的 JSON 响应?
How can I handle JSON response in Moqui inside a transition?
我实际上是在进行 JSON-RPC 调用以从 AngularJS 进行转换。由于请求的内容类型是 application/json,输入参数会自动在上下文中可用,因此我不需要显式处理它。
这是我在 'tutorial' 组件中对 'getUsers' 的请求。
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 作为响应的服务调用紧密耦合。如果我想在内部调用此服务,即在 Moqui 中,我将不得不定义另一个服务。
所以我的问题是我可以在进行此服务调用的转换中处理此响应吗?
这是可用于在转换中提及 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>
HTH.
谢谢
我实际上是在进行 JSON-RPC 调用以从 AngularJS 进行转换。由于请求的内容类型是 application/json,输入参数会自动在上下文中可用,因此我不需要显式处理它。
这是我在 'tutorial' 组件中对 'getUsers' 的请求。
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 作为响应的服务调用紧密耦合。如果我想在内部调用此服务,即在 Moqui 中,我将不得不定义另一个服务。
所以我的问题是我可以在进行此服务调用的转换中处理此响应吗?
这是可用于在转换中提及 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>
HTH.
谢谢