Couchdb 简明教程
CouchDB - HTTP API
使用 HTTP 请求头,你可以与 CouchDB 通信。通过这些请求,我们可以从数据库中检索数据,以文档的形式将数据存储到数据库中,并且我们可以查看以及格式化存储在数据库中的文档。
HTTP Request Formats
在与数据库通信时,我们将使用不同的请求格式,如 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 Request Headers
应提供 HTTP 头部来获取正确的格式和编码。在向 CouchDB 服务器发送请求时,你可以随同请求发送 Http 请求头。以下是不同的 Http 请求标头。
-
Content-type − 此标头用于指定我们随同请求提供给服务器的数据的内容类型。我们随同请求发送的内容类型通常是 MIME 类型或 JSON(application/json)。强烈建议在请求上使用 Content-type。
-
Accept − 此标头用于向服务器指定客户端能够理解的数据类型列表,以便服务器使用这些数据类型发送其响应。在此处,通常你可以发送客户端接受的 MIME 数据类型列表,用冒号分隔。虽然没有要求在 CouchDB 的查询中使用 Accept,但强烈建议使用它以确保返回的数据可以由客户端处理。
Response Headers
这些是由服务器发送的响应头。这些标头提供有关服务器作为响应发送的内容的信息。
-
Content-type − This header specifies the MIME type of the data returned by the server. For most request, the returned MIME type is text/plain.
-
Cache-control − This header suggests the client about treating the information sent by the server. CouchDB mostly returns the must-revalidate, which indicates that the information should be revalidated if possible.
-
Content-length − This header returns the length of the content sent by the server, in bytes.
-
Etag − This header is used to show the revision for a document, or a view.
Status Codes
以下是在 http 标头中发送的状态代码的表格形式及其说明。
Sr.No. |
Status Code & Description |
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 Paths
可以通过某些 URL 路径直接与数据库交互。以下是此类 URL 路径的表格形式。
Sr.No. |
URL & Operation |
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 用于从指定数据库中的设计文档中访问视图视图名称。 |