Xml 如何在Web API结果中表示布尔类型字段
我正在设计一个RESTWebAPI,我不确定如何对响应的某些部分建模 我认为输出的一个例子将是最具说明性的,这里就是 这个:Xml 如何在Web API结果中表示布尔类型字段,xml,json,rest,Xml,Json,Rest,我正在设计一个RESTWebAPI,我不确定如何对响应的某些部分建模 我认为输出的一个例子将是最具说明性的,这里就是 这个: <packages> <package> <name>My Package, Yay!</name> <description>This is my package, Yay!</description> <features> <text_ov
<packages>
<package>
<name>My Package, Yay!</name>
<description>This is my package, Yay!</description>
<features>
<text_overlays />
<localizable />
<!-- Only features that are true for this package are listed -->
</features>
</package>
</packages>
<packages>
<package>
<name>My Package, Yay!</name>
<description>This is my package, Yay!</description>
<features>
<text_overlays>True</text_overlays>
<localizable>True</localizable>
<audio>False</audio>
<another_feature>False</another_feature>
<this_aint_your_fathers_feature>False</this_aint_your_fathers_feature>
<every_other_feature_that_exists_listed_here_too>False</every_other_feature_that_exists_listed_here_too>
</features>
</package>
</packages>
我的包裹,耶!
这是我的包裹,耶!
或此:
<packages>
<package>
<name>My Package, Yay!</name>
<description>This is my package, Yay!</description>
<features>
<text_overlays />
<localizable />
<!-- Only features that are true for this package are listed -->
</features>
</package>
</packages>
<packages>
<package>
<name>My Package, Yay!</name>
<description>This is my package, Yay!</description>
<features>
<text_overlays>True</text_overlays>
<localizable>True</localizable>
<audio>False</audio>
<another_feature>False</another_feature>
<this_aint_your_fathers_feature>False</this_aint_your_fathers_feature>
<every_other_feature_that_exists_listed_here_too>False</every_other_feature_that_exists_listed_here_too>
</features>
</package>
</packages>
我的包裹,耶!
这是我的包裹,耶!
真的
真的
假的
假的
假的
假的
基本上,我有布尔字段,如果其中许多字段为false,那么将它们全部指定似乎过于冗长
我正在考虑使用元素的存在来表示它是真是假,但同样地,我担心这将是一种不好的做法。它看起来确实不太容易被发现,但我不确定在这里发现有多大价值
在这类问题上有共识吗
从消费客户的角度来看,我看不出有太大的区别。测试元素的存在不应该比检查元素的值更复杂
此外,我预计这些类型的参数最多可能有十几个,也可能有二十几个,所以它们不会有成百上千个
最后,我们打算将我们的API与XML和JSON一起使用。JSON等价物将省略属性,并且再次从消费客户端的角度来看,我认为两者之间没有什么区别
我们有机会从一开始就正确地做到这一点,这是我们的目标
有什么建议吗?当然是第二种方法。这允许更大的灵活性,当解析器循环时,检查某个值是否为非真时,它可以在找到该值时停止,而不必解析整个文件
此外,JSON支持布尔数据类型。第二种方法肯定是这样的。这允许更大的灵活性,当解析器循环时,检查某个值是否为非真时,它可以在找到该值时停止,而不必解析整个文件
此外,JSON支持布尔数据类型。如果决定是显式还是隐式的,我会默认为显式以消除任何可能的混淆。无论您是否发送这些属性,所表示的实体都具有这些属性,但您应该包含完整的表示。如果决策归结为显式或隐式,我将默认为显式以消除任何可能的混淆。无论您是否发送这些属性,所表示的实体都具有这些属性,但您应该包含完整的表示。效率差异似乎非常小,在任何情况下,解析器都应该只关注
功能
元素下的元素列表。另外,您是否有一个具体的灵活性示例?我想,如果我想“扩展”任何东西以获得更大的灵活性,我就必须对API进行版本化,然后才能根据需要更改元素结构。说单程更“灵活”似乎很雅格尼。如果不包括假布尔值,那么实际上并不是在存储它们。无法确定布尔值是否不存在或为false。换句话说,在定义中为false的所有值的集合是无限的。您是说undefined等于false。效率差异似乎非常小,解析器在任何情况下都应该只关注功能
元素下面的元素列表。另外,您是否有一个具体的灵活性示例?我想,如果我想“扩展”任何东西以获得更大的灵活性,我就必须对API进行版本化,然后才能根据需要更改元素结构。说单程更“灵活”似乎很雅格尼。如果不包括假布尔值,那么实际上并不是在存储它们。无法确定布尔值是否不存在或为false。换句话说,在定义中为false的所有值的集合是无限的。你是说未定义的等于错误。