我正在开发基于ASP.NET Core 2的RESTful HTTP API,该服务将由Web前端使用。
在API中有一个表示文件的资源。它附带了一些元数据(id,name,folder),并且可以选择包含表示文件内容的原始二进制数据。 API的其余部分使用JSON。
在请求和响应中表示此资源的现代方法是什么?我到目前为止找到的选项是:
优点:易于实施和使用
缺点:二进制数据的大小可达多GB,而Base64会大量增加流量以及上传和下载时间,此外,数据必须进行编码和解码,这将使这个过程相当慢
优点:易于实施和使用
缺点:必须提出两个请求才能访问所有信息
优点:没有Base64
缺点:在服务器和客户端都不像JSON那样容易处理,数据是二进制的,即使只发送非二进制数据,也必须进行编码和解码,需要额外的依赖性,格式与API的其他部分不同
优点:二进制和非二进制数据可以拆分为JSON和二进制数据
缺点:难以处理,格式与API的其他部分不同