mem*_*und 5 xml json soap web-services
在设计a时webservice
,无论是否soap
,xml
或者json
:您更喜欢扁平列表还是嵌套列表?
例:
嵌套:
<carRequest>
<cars>
<car>
<manufature />
<price />
<description />
</car>
<car>
<manufature />
<price />
<description />
</car>
</cars>
</carRequest>
Run Code Online (Sandbox Code Playgroud)
平面:
<carRequest>
<car>
<manufature />
<price />
<description />
</car>
<car>
<manufature />
<price />
<description />
</car>
</carRequest>
Run Code Online (Sandbox Code Playgroud)
一个优于另一个的优势是什么?
结合个人风格,工具(默认配置,限制或易用性),需要从单个对象表示支持多种MIME类型等优点和缺点.我不打算全部考虑到这一点 - 因为对某些人有用的可能不是其他人的好解决方案 - 但我只想指出一些事情......
哪一个看起来更自然,扁平元素还是包裹元素?人们通常如何看待重复元素?例如,<manufature>
,<price>
和<description>
被包裹在一个<car>
元件.为什么?因为它们是相关的并且一起形成一个结构.多个<car>
s也相关并形成一个结构:<car>
s 的列表.它在您的表示和XML模式中更具表现力,更具可读性.但当然现在我们进入个人喜好和全面战争......
包裹元素还有另一个优点.您如何表达空车列表与空车列表?
如果元素是扁平的并且你没有汽车,那么当你将它解组成一个物体时,它代表什么呢?
<carRequest>
</carRequest>
Run Code Online (Sandbox Code Playgroud)
您的要求是否有cars = null
或cars = []
?你不知道.
如果你使用嵌套元素,那么cars = null
这是:
<carRequest>
</carRequest>
Run Code Online (Sandbox Code Playgroud)
虽然cars = []
是这样的:
<carRequest>
<cars>
</cars>
</carRequest>
Run Code Online (Sandbox Code Playgroud)
既然你提到了SOAP,你可能在某些时候需要考虑跨技术和工具的互操作性(请参阅为什么WS-I Basic Profile兼容很重要?),它规定了XML在SOAP消息中的外观.称为文档/文字包装模式的样式是首选.
这是一个广泛的主题和TL; DR我只能想到"选择你的毒药".我希望我的回答对你有所帮助.
归档时间: |
|
查看次数: |
91 次 |
最近记录: |