当前位置 : 主页 > 网页制作 > Nodejs >

【优化记录】WebService编写接口时,注意传输对象的选择减少传输IO

来源:互联网 收集:自由互联 发布时间:2021-06-24
优化编写接口时,请注意传输对象的选择,数据量大时传输严重耗时!!! 工作中,发现很多WebService接口的传输对象使用 byte[] 、Dataset 、自定义DTO Dataset作为接口返回对象:请求调用

优化编写接口时,请注意传输对象的选择,数据量大时传输严重耗时!!!

工作中,发现很多WebService接口的传输对象使用 byte[] 、Dataset 、自定义DTO

Dataset作为接口返回对象:请求调用时会自动将Dataset序列化为Base64字符,长度超出了自行序列化为XML的长度(未序列号schema)

byte[]作为接口返回对象: 接口调用时会将byte[]转为Base64字符,Base64实际传输长度 已经超出原对象序列化为XML的长度, 没有起到优化的作用

自定义DTO:接口调用时会将DTO转为XML格式字符对象

建议:

1.接口优化 使用String类型返回/ Json格式或自行序列化,减少传输内容

2.开发新接口 直接上WebApi / Json

 

三行数据比较 XML PK Json (ToBase64) 自行比较

XML
<DataSet1><DataTable1><price>50</price><tax>4.3100</tax><total>54.3100</total></DataTable1><DataTable1><price>50</price><tax>4.3100</tax><total>54.3100</total></DataTable1><DataTable1><price>50</price><tax>4.3100</tax><total>54.3100</total></DataTable1></DataSet1>

Base64
PERhdGFTZXQxPjxEYXRhVGFibGUxPjxwcmljZT41MDwvcHJpY2U+PHRheD40LjMxMDA8L3RheD48dG90YWw+NTQuMzEwMDwvdG90YWw+PC9EYXRhVGFibGUxPjxEYXRhVGFibGUxPjxwcmljZT41MDwvcHJpY2U+PHRheD40LjMxMDA8L3RheD48dG90YWw+NTQuMzEwMDwvdG90YWw+PC9EYXRhVGFibGUxPjxEYXRhVGFibGUxPjxwcmljZT41MDwvcHJpY2U+PHRheD40LjMxMDA8L3RheD48dG90YWw+NTQuMzEwMDwvdG90YWw+PC9EYXRhVGFibGUxPjwvRGF0YVNldDE+

Json
{"DataTable1":[{"price":50,"tax":4.3100,"total":54.3100},{"price":50,"tax":4.3100,"total":54.3100},{"price":50,"tax":4.3100,"total":54.3100}],"success":[{"RETURN_CODE":"0","ERROR_MSG":""}]}

Base64eyJEYXRhVGFibGUxIjpbeyJwcmljZSI6NTAsInRheCI6NC4zMTAwLCJ0b3RhbCI6NTQuMzEwMH0seyJwcmljZSI6NTAsInRheCI6NC4zMTAwLCJ0b3RhbCI6NTQuMzEwMH0seyJwcmljZSI6NTAsInRheCI6NC4zMTAwLCJ0b3RhbCI6NTQuMzEwMH1dLCJzdWNjZXNzIjpbeyJSRVRVUk5fQ09ERSI6IjAiLCJFUlJPUl9NU0ciOiIifV19

网友评论