如何响应无效的排序参数
How to respond to an invalid sort param
假设我在 REST API 上有一个端点,它只支持这些排序参数:日期和价格。我应该如何应对要求按税率排序数据的 API 调用?
对于过滤器参数,这很简单,我 return 空列表。但是我应该对排序参数做同样的事情还是简单地忽略无效的排序参数和return基于其他参数的数据?
我知道在某些情况下 API 设计问题没有严格的答案,我很想知道哪种方法支持更广泛的用例。
我想在这两种情况下,无论是未知过滤器还是未知排序类型,API 都应该以相同的响应进行响应。此类响应通常属于 Client Errors (400-499)
个类别。
原因是 APIs 应该有严格和明确的规范。并且此类规范明确提及有效的过滤器类型和有效的排序类型。如果任何不符合规范的请求将导致 400* 错误范围。这就是我认为更可取的响应,因此发出请求的客户也知道他违反了 API 规范。
根据我的经验,我也看过很多规范,其中提到忽略请求中的未知参数。在那种情况下会导致默认响应。如果您的 API 在您的规范中清楚地记录了这一点,那么它就是一个有效的回应。
假设我在 REST API 上有一个端点,它只支持这些排序参数:日期和价格。我应该如何应对要求按税率排序数据的 API 调用?
对于过滤器参数,这很简单,我 return 空列表。但是我应该对排序参数做同样的事情还是简单地忽略无效的排序参数和return基于其他参数的数据?
我知道在某些情况下 API 设计问题没有严格的答案,我很想知道哪种方法支持更广泛的用例。
我想在这两种情况下,无论是未知过滤器还是未知排序类型,API 都应该以相同的响应进行响应。此类响应通常属于 Client Errors (400-499)
个类别。
原因是 APIs 应该有严格和明确的规范。并且此类规范明确提及有效的过滤器类型和有效的排序类型。如果任何不符合规范的请求将导致 400* 错误范围。这就是我认为更可取的响应,因此发出请求的客户也知道他违反了 API 规范。
根据我的经验,我也看过很多规范,其中提到忽略请求中的未知参数。在那种情况下会导致默认响应。如果您的 API 在您的规范中清楚地记录了这一点,那么它就是一个有效的回应。