首页 > 解决方案 > Loopback XML 正文数据验证错误问题

问题描述

我想通过模型 REST api 接受和保存 XML 数据。当我选择“参数内容类型”和“响应内容类型”“application/xml”或“text/xml”时,出现以下验证错误。

   <error>
    <statusCode>422</statusCode>
    <name>ValidationError</name>
    <message>The `testmodel` instance is not valid. 
             Details: `type` can't be blank (value: undefined); 
             `metric` can't be blank (value: undefined); 
             `valid` can't be blank (value: undefined); 
             `registerDate` can't be blank (value: undefined).
    </message>
    .....
   </error>

我的帖子数据是

<testmodel>
    <type>testType</type>
    <metric>testMetric</metric>
    <valid>true</valid>
    <registerDate>Thu Jan 17 2019 10:25:59</registerDate>
</testmodel>

它在选择“参数内容类型”和“响应内容类型”作为 JSON 时起作用。

我在 config.json 文件下将 remoting.rest.xml 设置为 true。响应可以使用 XML,但由于验证错误,post 和 put 有效负载不例外。我还添加了

"parse": {
    "express-xml-bodyparser": {"params": { "limit": "1024kb" }}
},

到 middleware.json 文件,但没有运气。

谢谢

标签: xmlloopbackjsbody-parser

解决方案


经过一些工作,我最终找到了解决方案。只需在middleware.json文件中放置或更改以下代码

"parse": {
    "express-xml-bodyparser": {"params": { "explicitArray": false , "explicitRoot":  false}}
},

推荐阅读