“值存在”的RESTful查询字符串约定

“值存在”的RESTful查询字符串约定,rest,url,Rest,Url,假设我们有一个URL,如: http://example.org/resources/?property=1 这将返回属性值为1的每个资源,非常简单。但是,如果属性可为null,并且我们希望使用非null查询字符串搜索所有资源,该怎么办?我可以想出几个主意: http://example.org/resources/?property http://example.org/resources/?property=present 但第一个要求将其视为一种特殊价值,并将其与其他价值区分开来htt

假设我们有一个URL,如:

http://example.org/resources/?property=1
这将返回属性值为1的每个资源,非常简单。但是,如果属性可为null,并且我们希望使用非null查询字符串搜索所有资源,该怎么办?我可以想出几个主意:

http://example.org/resources/?property
http://example.org/resources/?property=present

但第一个要求将其视为一种特殊价值,并将其与其他价值区分开来http://example.org/resources/,其中属性甚至不在URL中-这在某些框架中并不一定简单,第二个框架要求声明和记录present是一个特殊值,这违背了好的API URL应该是显而易见的、毫不奇怪的一般原则。如果属性是一个不能有任何保留字的自由文本字段,该怎么办?有公认的方法吗?

为什么不。。。要返回所有资源?似乎不可能满足您的标准,即允许它成为自由文本字段,但也要求它在框架处理中出现?property=null对我来说并不奇怪。@Jason当然可以使用example.org/resources返回所有资源,但我不想要所有资源,我只想要设置属性的资源。@Frug是吗?这意味着默认情况下只返回属性为非null的资源,而不是返回所有资源。我认为这将是令人惊讶的。