我今天遇到一个问题。
我有一个用 Node JS 制作的 API,但在某些端点中,我需要接收一些带有空格的参数。
这些端点是 GET,但我的问题是,在 GET 端点中使用表单 url 编码的正文是一个好的做法吗?
将带有空格的参数传递到 GET 端点的最佳方式是什么?
您不应将请求主体与
GET
一起使用。请求主体被/应该被忽略,并且许多库丢弃它们。
GET
的目的是获取指定URI处资源的表示,仅此而已。有关您想要接收其状态的资源的所有信息都应位于 URI 中。不过,您可以对 URI 中的空格进行编码,只需使用 url 编码库即可。
如果您谈论的是“参数”,这对我来说听起来更像是 RPC 调用,并且
POST
可能更合适。 POST
确实允许请求主体,并且 URL 编码或 JSON 主体都可以。
将带有空格的参数传递到 GET 端点的最佳方式是什么?
形成 urlencoded 查询参数是最常见的答案。
/foo?bar=look+at+the+encoded+spaces
参见:application/x-www-form-urlencoded
基本框架是参数在概念上是所请求资源的标识符的一部分。