繁体   English   中英

REST API 设计:参数值以

[英]REST API design: param value starts with

我需要一个 REST API 端点,它将返回名称以 ABC 开头的所有记录。 SQL 查询类似于:

SELECT * FROM MyResource WHERE Name LIKE 'ABC%'

但是我应该如何在 REST 端点中定义查询字符串呢? 我认为在查询字符串中使用等号是不合适的。

{Base URL}/myresource?name=ABC

到目前为止,我发现以下规范可用作查询定义的基础: https://datatracker.ietf.org/doc/html/draft-ietf-scim-api-12#section-3.2.2.2

只要您使用正确的命名,就可以使用 Equals。 对于此请求,您可以定义自我描述的即“namePrefix”参数。

但是我应该如何在 REST 端点中定义查询字符串呢? 我认为在查询字符串中使用等号是不合适的。

在查询字符串中使用等号很好——全球范围内的 web 已经取得了灾难性的成功,您会发现带有编码键/值对的查询字符串被用于各种各样的事情。

没有特别的理由假设资源标识符的拼写必须与内部实现细节相匹配——事实上,情况恰恰相反:我们应该能够改变资源的实现方式而不必引入一个新的标识符。

使用 application/x-www-form-urlencoded 数据作为查询字符串有一个巨大的优势:这就是 HTML GET forms 这样做的方式,这反过来意味着几乎每个人都至少可以访问一个通用库,该库知道如何构造使用该约定的资源标识符。

但是,如果您宁愿放弃该优势以支持其他一些问题,那也没关系; REST/HTTP 不关心您对资源标识符使用什么拼写约定,只要结果与 RFC 3986 中描述的生产规则一致即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM