OpenEdge ABL在get请求上添加了额外的标签



我有一个下面的响应json由openedge ABL GET rest端点创建。为什么要额外添加response、ttcust和ttcust标签?是否有一种方法可以在生成响应json时删除它们?提前谢谢你。

{
"response": {
"ttcust": {
"ttcust": [
{
"CustNum": 1,
"Country": "USA",
"Name": "Lift Tours",
"Address": "276 North Drive",
"Address2": "",
"City": "Burlington",
"State": "MA",
"PostalCode": "01730",
"Contact": "Gloria Shepley",
"Phone": "(617) 450-0086",
"SalesRep": "HXM",
"CreditLimit": 66700.0,
"Balance": 903.64,
"Terms": "Net30",
"Discount": 35,
"Comments": "This customer is on credit hold.",
"Fax": "",
"EmailAddress": ""
},
{
"CustNum": 2,
"Country": "Finland",
"Name": "Urpon Frisbee",
"Address": "Rattipolku 3",
"Address2": "",
"City": "Oslo",
"State": "Uusima",
"PostalCode": "45321",
"Contact": "Urpo Leppakoski",
"Phone": "(603) 532 5471",
"SalesRep": "DKP",
"CreditLimit": 27600.0,
"Balance": 437.63,
"Terms": "Net30",
"Discount": 35,
"Comments": "Ship all products 2nd Day Air.",
"Fax": "",
"EmailAddress": ""
}
]
}
}
}

这在一定程度上取决于您发出的请求。标准的数据对象服务请求将以这种格式返回数据——这将是GET web/CustomerSvc/Customers请求或GET rest/CustomerSvc/Customers请求。

这里的第一个路径段——web或其他部分——将决定服务器有多大的灵活性。对于/rest,这就是你得到的,真的没有选择。

对于Web传输(又名/web/),它取决于许多因素。如果您正在使用数据对象服务(又名"业务实体");那么你可能会使用数据对象处理程序来处理请求(如果PASOE实例的conf/openedge.properties文件中有一个条目看起来像handler1=OpenEdge.Web.DataObject.DataObjectHander:/pdo,你可以检查这一点)。

在后一种情况下,您可以设置一个可以操作响应的事件处理程序—查看https://github.com/progress/Spark-Toolkit/blob/develop/docs/Data%20Object%20Handler%20Guide.docx了解如何使用Invoked事件处理程序。在数据从业务逻辑返回之后,但在数据返回给客户端之前调用该函数。您可以以编程方式操作JSON并删除您想要的任何内容。

您可以删除信封- .gen或.map文件中的response属性可以设置为'false'或空白。如果属性的值为null或不存在,则不会向响应添加信封。

最新更新