CouchDB HTTP API

CouchDB HTTP API

HTTP请求用于与CouchDB进行通信。

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

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

HTTP请求格式

在通信时,数据库使用不同的请求格式。 这些请求格式有:getheadpostputdeletecopy

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

请参阅用于与CouchDB通信的HTTP协议的不同请求格式,如下所列 -

GET:GET请求格式用于获取特定项目。 要获取不同的项目,必须发送特定的网址模式。 在CouchDB中使用此GET请求,以JSON文档的形式获取静态项,数据库文档和配置以及统计信息。
HEAD:HEAD方法用于获取GET请求的HTTP头,而不需要响应的正文。
POST:Post请求用于上传数据。 在CouchDB中,POST请求主要用于设置值,上传文档,设置文档值,还可以启动某些管理命令。
PUT:PUT请求用于创建新对象,数据库,文档,视图和设计文档。
DELETE:DELETE请求用于删除文档,视图和设计文档。
COPY:COPY方法用于复制文档和对象。

HTTP请求标头

提供HTTP标头以获得正确的格式和编码。 HTTP请求头与请求一起发送,同时将请求发送到CouchDB服务器。 下面将解释不同的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 /db PUT url用于创建一个新的数据库。
GET /db GET url用于获取有关现有数据库的信息。
PUT /db/document PUT url用于创建文档/更新现有文档。
GET /db/document GET url用于获取文档。
DELETE /db/document DELETE url用于从指定的数据库中删除指定的文档。
GET /db/_design/design-doc 此URL用于获取设计文档的定义。
GET /db/_design/designdoc/_view/view-name 此URL用于从指定的数据库访问设计文档中的视图 - view-name