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 header发送的状态码的表格形式及其描述。
Sr.No. | 状态代码 & 描述 |
---|---|
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 路径的表格格式。
Sr.No. | URL & Operation |
---|---|
1 | PUT /db 此网址用于创建新数据库。 |
2 | GET /db 该url用于获取现有数据库的信息。 |
3 | PUT /db/document 此网址用于创建文档/更新现有文档。 |
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用于从指定数据库访问设计文档中的视图,视图名称。 |