- CouchDB 教程
- CouchDB - 首页
- CouchDB - 简介
- CouchDB - 安装
- CouchDB - Curl & Futon
- CouchDB - HTTP API
- CouchDB - 创建数据库
- CouchDB - 删除数据库
- CouchDB - 创建文档
- CouchDB - 更新文档
- CouchDB - 删除文档
- CouchDB - 附加文件
- CouchDB 有用资源
- CouchDB - 快速指南
- CouchDB - 资源
- CouchDB - 讨论
CouchDB - HTTP API
使用 HTTP 请求头,您可以与 CouchDB 通信。通过这些请求,我们可以从数据库中检索数据,以文档的形式将数据存储到数据库中,并且可以查看和格式化存储在数据库中的文档。
HTTP 请求格式
在与数据库通信时,我们将使用不同的请求格式,如 get、head、post、put、delete 和 copy。对于 CouchDB 中的所有操作,输入数据和输出数据结构都将采用 JavaScript 对象表示法 (JSON) 对象的形式。
以下是用于与 CouchDB 通信的 HTTP 协议的不同请求格式。
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 - 此标头用于指定我们与请求一起提供给服务器的数据的内容类型。大多数情况下,我们与请求一起发送的内容类型将是 MIME 类型或 JSON (application/json)。强烈建议在请求中使用 Content-type。
Accept - 此标头用于指定服务器,客户端可以理解的数据类型列表,以便服务器使用这些数据类型发送其响应。通常,您可以在此处发送客户端接受的 MIME 数据类型列表,并以冒号分隔。
虽然在 CouchDB 的查询中不需要使用 Accept,但强烈建议使用它以确保返回的数据可以由客户端处理。
响应头
这些是服务器发送的响应的标头。这些标头提供有关服务器作为响应发送的内容的信息。
Content-type - 此标头指定服务器返回的数据的 MIME 类型。对于大多数请求,返回的 MIME 类型为 text/plain。
Cache-control - 此标头建议客户端如何处理服务器发送的信息。CouchDB 大多数情况下返回 must-revalidate,这表示应在可能的情况下重新验证信息。
Content-length - 此标头返回服务器发送的内容的长度(以字节为单位)。
Etag - 此标头用于显示文档或视图的修订版。
状态码
以下是 http 标头发送的状态码及其描述的表格形式。
| 序号 | 状态码 & 描述 |
|---|---|
| 1 | 200 - OK 当请求成功完成时,将发出此状态。 |
| 2 | 201 - Created 创建文档时将发出此状态。 |
| 3 | 202 - Accepted 接受请求时将发出此状态。 |
| 4 | 404 - Not Found 当服务器无法找到请求的内容时,将发出此状态。 |
| 5 | 405 - Resource Not Allowed 当使用的 HTTP 请求类型无效时,将发出此状态。 |
| 6 | 409 - Conflict 每当发生任何更新冲突时,将发出此状态。 |
| 7 | 415 - Bad Content Type 此状态表示服务器不支持请求的内容类型。 |
| 8 | 500 - Internal Server Error 每当请求中发送的数据无效时,将发出此状态。 |
HTTP URL 路径
可以使用某些 url 路径直接与数据库交互。以下是此类 url 路径的表格格式。
| 序号 | URL & 操作 |
|---|---|
| 1 | PUT /db 此 url 用于创建新的数据库。 |
| 2 | GET /db 此 url 用于获取有关现有数据库的信息。 |
| 3 | PUT /db/document 此 url 用于创建文档/更新现有文档。 |
| 4 | GET /db/document 此 url 用于获取文档。 |
| 5 | DELETE /db/document 此 url 用于从指定的数据库中删除指定的文档。 |
| 6 | GET /db/_design/design-doc 此 url 用于获取设计文档的定义。 |
| 7 | GET /db/_design/designdoc/_view/view-name 此 url 用于从指定数据库中的设计文档访问视图 view-name。 |