CouchDB HTTP API

2025 年 1 月 6 日 | 阅读 4 分钟

HTTP 请求用于与 CouchDB 通信。

通过使用这些请求,我们可以-

  • 从数据库中检索数据
  • 以文档的形式将数据存储到数据库中
  • 查看以及格式化存储在数据库中的文档。

HTTP 请求格式

与数据库通信时,使用了不同的请求格式。这些请求格式有:get、head、post、put、delete 和 copy。

在 CouchDB 中,输入数据和输出数据结构将以 JavaScript 对象表示法 (JSON) 对象的形式用于所有操作。

请参阅用于与 CouchDB 通信的 HTTP 协议的不同请求格式。

GET : GET 请求格式用于获取特定项目。要获取不同的项目,您必须发送特定的 URL 模式。在 CouchDB 中,使用此 GET 请求,我们可以获取静态项目、数据库文档和配置以及统计信息,这些信息以 JSON 文档的形式呈现。

HEAD : HEAD 方法用于获取 GET 请求的 HTTP 标头,而无需响应正文。

POST : Post 请求用于上传数据。在 CouchDB 中,POST 请求主要用于设置值、上传文档、设置文档值,也可以启动某些管理命令。

PUT : PUT 请求用于创建新对象、数据库、文档、视图和设计文档。

DELETE : DELETE 请求用于删除文档、视图和设计文档。

COPY : COPY 方法用于复制文档和对象。


HTTP 请求标头

应提供 HTTP 标头以获得正确的格式和编码。在向 CouchDB 服务器发送请求时,会随请求一起发送 HTTP 请求标头。以下是不同的 Http 请求标头。

Content-type : content-type 标头用于指定我们随请求一起提供给服务器的数据的内容类型。大多数情况下,我们随请求一起发送的内容类型将是 MIME 类型或 JSON (application/JSON)。强烈建议在请求中使用 Content-type。

Accept : Accept 标头用于指定服务器、客户端可以理解的数据类型列表,以便服务器将使用这些数据类型发送其响应。通常,您可以在此处发送客户端接受的 MIME 数据类型列表,并用冒号分隔。

在 CouchDB 中,在查询中使用 Accept 不是必需的,但强烈建议确保客户端可以处理返回的数据。


HTTP 响应标头

HTTP 响应标头是服务器发送的响应类型。这些标头提供有关服务器作为响应发送的内容的信息。

响应标头有 4 种类型

Content-type : content-type 响应标头指定服务器返回的数据的 MIME 类型。对于大多数请求,返回的 MIME 类型为 text/plain。

Cache-control : Cache-control 响应标头用于向客户端建议关于处理服务器发送的信息。 CouchDB 主要是返回 must-revalidate,这表示如果可能,应重新验证信息。

Content-length : content-length 标头用于获取服务器发送的内容的长度(以字节为单位)。

Etag : Etag 标头用于显示文档或视图的修订版。


HTTP 标头的状态代码

下表指定了 HTTP 标头发送的状态代码及其工作原理

状态代码描述
200 - OK成功完成请求时会生成此状态。
201 - Created创建文档时会生成此状态。
202 - Accepted接受请求时会生成此状态。
404 - Not Found当服务器无法找到请求的内容时,会发出此状态。
405 - Resource Not Allowed当使用的 http 请求类型无效时,会发出此状态。
409 - Conflict每当出现任何更新冲突时,都会发出此状态。
415 - Bad Content Type此状态指定服务器不支持请求的内容类型。
500 - Internal Server Error每当将无效数据作为请求发送时,都会发出此状态。

用于与数据库交互的 HTTP URL 路径

以下是一些用于直接与数据库交互的 URL 路径列表。

URL操作
PUT /dbPUT url 用于创建新数据库。
GET /dbGET url 用于获取有关现有数据库的信息。
PUT/db/documentPUT url 用于创建文档/更新现有文档。
GET /db/documentGET url 用于获取文档。
DELETE /db/documentDELETE url 用于从指定的数据库中删除指定的文档。
GET/db/_design/design-doc此 url 用于获取设计文档的定义。
GET /db/_design/designdoc/_view/view-name此 url 用于从指定数据库中的设计文档访问视图 view-name。