gpt4 book ai didi

json - 用于在 JSON 中上传文件的 REST API

转载 作者:IT王子 更新时间:2023-10-29 01:43:06 26 4
gpt4 key购买 nike

我正在设计一个 REST API 来上传一个较大的 (100MB) 文件和一些信息。所以很自然的想到json编码。

所以像这样:

{
file: content of the file or URL?
name: string
description: string
}

名称和描述很容易用 json 做,但我不确定如何将文件内容添加到它。

另外我在想我应该使用 http PUT 方法。这是正确的吗?

顺便说一下,如果重要的话,golang 用于实现这个 API。

最佳答案

对于 JSON 编码,使用 []byte 值来保存文件内容。标准编码/json 包将 []byte 值编码为 base64 字符串。

下面是如何实现 JSON 编码的草图。声明一个表示有效载荷的类型:

type Upload struct {
Name string
Description string
Content []byte
}

将文件编码为请求正文:

v := Upload{Name: fileName, Description: description, Content: content}
var buf bytes.Buffer
if err := json.NewEncoder(&buf).Encode(v); err != nil {
// handle error
}
req, err := http.NewRequest("PUT", url, &buf)
if err != nil {
// handle error
}
resp, err := http.DefaultClient.Do(req)

从服务器上的请求主体解码:

var v Upload
if err := json.NewDecoder(req.Body).Decode(&v); err != nil {
// handle error
}

另一种选择是使用 mime/multipart包裹。多部分编码将比 JSON 编码更有效,因为多部分不需要文件的 base64 或其他文本编码。

关于json - 用于在 JSON 中上传文件的 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25860391/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com