sách gpt4 ai đã đi

Thiết kế REST để tải tệp lên

In lại 作者:行者123 更新时间:2023-12-03 05:52:27 26 4
mua khóa gpt4 Nike

我想为文件上传服务创建一个 REST API,允许用户:

  1. 打开 session
  2. 上传一堆文件
  3. 关闭 session

然后,回来处理他们在上一个 session 中上传的文件。

为了方便处理有关每个文件的数据以及处理文件本身的内容,这是我正在考虑使用的 URI 方案:

/sessions/
/sessions/3
/sessions/3/files
/sessions/3/files/5
/sessions/3/file/5/content
/sessions/3/file/5/metadata

这将允许文件元数据与文件内容分开处理。在这种情况下,仅允许对文件nội dung和文件元数据进行GET操作,并且要更新其中任何一个,必须放置一个新文件。

这有道理吗?如果没有,为什么以及如何才能更好?

1 Câu trả lời

为什么需要 session ?是出于身份验证和授权的原因吗?如果是这样我会使用 http basic使用 SSL 或 digest 。因此,没有开始或结束 session ,因为 http 是无状态的,并且每个请求都会发送安全 header 。

上传资源的建议是直接映射为私有(private)文件系统


# returns all files and subdirs of root dir
GET /{userId}/files
GET /{userId}/files/file1
GET /{userId}/files/dir1
# create or update file
PUT /{userId}/files/file2

上传文件内容时,您将使用 multipart content type .

评论后修改答案

我将通过在上传有效负载内引入链接(到文件内容)来设计您想要的文件内容和有效负载分离。它简化了资源结构。

表示“上传”资源:


{
"upload-content" : "http://storage.org/2a34cafa" ,
"metadata" : "{ .... }"
}

资源操作:


# upload file resource
POST /files
-> HTTP 201 CREATED
-> target location is shown by HTTP header 'Location: /files/2a34cafa

# /uploads as naming feels a bit more natural as /files
POST /sessions/{sessionId}/uploads
-> HTTP 201 CREATED
-> HTTP header: 'Location: /sessions/{sessionId}/uploads/1
-> also returning payload

# Updating upload (like metadata)
/PUT/sessions/{sessionId}/uploads/1

关于文件上传的 REST 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8436224/

26 4 0
Bài viết được đề xuất: c++builder - 链接失败 [ilink32 错误] 致命 : Unable to open file 'TYPES.OBJ'
Bài viết được đề xuất: hierarchical-data - 带有 TreeView 小部件的主干
Bài viết được đề xuất: Inkscape 中的透明度与白色背景
Bài viết được đề xuất: web-services - RETEasy 还是 Jersey ?
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com