Rails API:何时发送Base64编码数据而不是原始数据更好

Rails API: When is it better to send Base64 encoded data instead of raw data

我正在使用RubyonRails框架创建一个API。用户可以使用post方法发送数据,将原始数据作为post参数传递。但是,当将我的API与其他API(如mixpanel https://mixpanel.com/help/reference/http base64)进行比较时,我发现其中一些API只接受padded base64请求。

我的问题是:使用填充的base64请求更好吗?为什么?

谢谢。


The primary use case of base64 encoding is when you want to store or transfer data with a restricted set of characters; i.e. when you can't pass an arbitrary value in each byte.

参考:https://stackoverflow.com/a/1682960/85125

对于mixpanel,他们对所有请求都使用JSONAPI。由于JSON是一个字符串协议,发送某种类型的数据(如二进制)会破坏字符串并影响请求。因此,他们选择将所有请求作为base64,以确保使用JSON可接受的一组受限字符进行传输。

为了回答你的问题,这不是一个更好的问题,而是一个问题,这是必需的。如果您计划构建一个严格的JSONAPI,并计划向这个API发送二进制数据,那么您需要对数据进行base64编码。否则,它不是必需的,我不会实现它,因为base64请求比原始数据请求大。希望这有帮助。