CouchDB HTTP API
使用 HTTP 请求标头,你可以与 CouchDB 进行通信。通过这些请求,我们可以从数据库中检索数据,以文档的形式将数据存储到数据库中,我们可以查看以及格式化存储在数据库中的文档。
HTTP 请求格式
在与数据库通信时,我们将使用不同的请求格式,例如 get、head、post、put、delete 和 copy。对于 CouchDB 中的所有操作,输入数据和输出数据结构将采用 JavaScript Object Notation (JSON) 对象的形式。
以下是用于与 CouchDB 通信的 HTTP 协议的不同请求格式。
-
GET : 这种格式是用来获取特定项目的。要获得不同的项目,你必须发送特定的 url 模式。在 CouchDB 中使用这个 GET 请求,我们可以获得 JSON 文档形式的静态项、数据库文档和配置以及统计信息(大多数情况下)。
-
HEAD : HEAD 方法用于获取没有响应正文的 GET 请求的 HTTP 标头。
-
POST : Post 请求用于上传数据。在使用 POST 请求的 CouchDB 中,你可以设置值、上传文档、设置文档值,还可以启动某些管理命令。
-
PUT : 使用 PUT 请求,你可以创建新的对象、数据库、文档、视图和设计文档。
-
DELETE : 使用DELETE请求,可以删除文件、视图、设计文件。
-
COPY : 使用 COPY 方法,可以复制文件和对象。
HTTP 请求标头
应提供 HTTP 标头以获得正确的格式和编码。在将请求发送到 CouchDB 服务器时,你可以将 Http 请求标头与请求一起发送。以下是不同的 Http 请求标头。
-
内容类型 :这个Header用来指定我们随请求一起提供给服务器的数据的内容类型。大多数情况下,我们随请求发送的内容类型将是 MIME 类型或 JSON (application/json)。强烈建议对请求使用 Content-type。
-
Accept : 这个头用于指定服务器,客户端可以理解的数据类型列表,以便服务器使用那些数据类型发送它的响应。通常在这里,你可以发送客户端接受的 MIME 数据类型列表,以冒号分隔。
虽然在 CouchDB 的查询中不需要使用 Accept,但强烈建议确保返回的数据可以被客户端处理。
响应标头
这些是服务器发送的响应的标头。这些标头提供有关服务器作为响应发送的内容的信息。
-
内容类型 :这个头指定了服务器返回的数据的MIME类型。对于大多数请求,返回的 MIME 类型是 text/plain。
-
缓存控制 : 这个头建议客户端处理服务器发送的信息。 CouchDB 主要返回 must-revalidate,表示如果可能,应该重新验证信息。
-
内容长度 :这个头返回服务器发送的内容的长度,以字节为单位。
-
Etag : 这个表头用于显示一个文档或一个视图的修订版本。
状态码
以下是http头发送的状态码的表格形式及其描述。
序号. | 状态代码和说明 |
---|---|
1 |
200: OK 当请求成功完成时将发出此状态。 |
2 |
201:已创建 此状态将在创建文档时发出。 |
3 |
202:接受 接受请求时将发出此状态。 |
4 |
404:未找到 当服务器无法找到请求的内容时,将发出此状态。 |
5 |
405:资源不允许 当使用的 HTTP 请求类型无效时,会发出此状态。 |
6 |
409:冲突 只要有任何更新冲突,就会发出此状态。 |
7 |
415:错误的内容类型 此状态表示服务器不支持请求的内容类型。 |
8 |
500内部服务器错误 只要请求中发送的数据无效,就会发出此状态。 |
HTTP URL 路径
使用某些 url 路径,你可以直接与数据库交互。以下是此类 url 路径的表格格式。
序号. | 网址与操作 |
---|---|
1 |
PUT /db 此 url 用于创建新数据库。 |
2 |
GET /db 此 url 用于获取有关现有数据库的信息。 |
3 |
放置 /db/文档 此 url 用于创建文档/更新现有文档。 |
4 |
获取 /db/文档 此 url 用于获取文档。 |
5 |
删除 /db/文档 此 url 用于从指定数据库中删除指定文档。 |
6 |
获取 /db/_design/design-doc 此 url 用于获取设计文档的定义。 |
7 |
获取 /db/_design/designdoc/_view/view-name 此 url 用于访问指定数据库中设计文档中的视图、视图名称。 |