我们有一个 HTTP RPC api,它的所有参数都将使用 JSON 进行编码。这行得通,但在 http 帖子的正文中混合 MIME x-www-form-urlencoding 和 JSON 实际上感觉不是很优雅。即身体可能看起来像这样:
POST /my/rpc/api/endpoint
foo={"x":123,"y":true}&bar=[1,2,3,4,5,6,7]
我见过根本不使用 MIME 并进行完整 json 编码的服务。例如:
POST /my/rpc/api/endpoint
{"foo":{"x":123,"y":true},"bar":[1,2,3,4,5,6,7]}
我认为后一种解决方案看起来更干净,但是我不太确定这是否违反了 HTTP 约定以及这会产生什么影响。这是要避免的吗?例如,这是否会使实施客户端变得更加困难?