【发布时间】:2021-03-26 14:17:01
【问题描述】:
我今天遇到了一个问题。
我有一个使用 Node JS 制作的 API,但在某些端点中,我需要接收一些带空格的参数。
这些端点是 GET,但我的问题是,在 GET 端点中使用 form-url-encoded body 是一种好习惯吗?
将带空格的参数传递给 GET 端点的最佳方式是什么?
【问题讨论】:
我今天遇到了一个问题。
我有一个使用 Node JS 制作的 API,但在某些端点中,我需要接收一些带空格的参数。
这些端点是 GET,但我的问题是,在 GET 端点中使用 form-url-encoded body 是一种好习惯吗?
将带空格的参数传递给 GET 端点的最佳方式是什么?
【问题讨论】:
您不应使用带有GET 的请求正文。请求正文被/应该被忽略,许多图书馆都放弃了它们。
GET 的目的是获取指定 URI 处的资源表示,仅此而已。您想要接收其状态的资源的所有信息都应该在 URI 中。不过,您可以在 URI 中对空格进行编码,只需使用 url 编码库即可。
如果您在谈论“参数”,这听起来更像是一个 RPC 调用,而POST 可能更适合于此。 POST 确实允许请求正文和 URL 编码或 JSON 正文都可以。
【讨论】:
将带空格的参数传递给 GET 端点的最佳方式是什么?
Form urlencoded 查询参数是最常见的答案。
/foo?bar=look+at+the+encoded+spaces
参见:[application/x-www-form-urlencoded][1]
基本框架是参数在概念上是被请求资源标识符的一部分。
【讨论】: