📜  CouchDB-HTTP API(1)

📅  最后修改于: 2023-12-03 15:14:15.760000             🧑  作者: Mango

CouchDB-HTTP API

CouchDB-HTTP API 是 CouchDB 数据库系统所遵循的 API 接口。

CouchDB 是一个基于 HTTP 的文档数据库,其内部的所有操作都是通过 HTTP 协议来实现的。

CouchDB-HTTP API 是 CouchDB 实现 RESTful API 的方式,其对外暴露的 API 接口均为标准的 HTTP 请求方法,如 GET、POST、PUT、DELETE 等。

API 接口

CouchDB 所支持的 API 接口,主要有以下几种:

获取数据库信息

获取数据库信息的接口为 GET /db-name,返回结果如下:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "db_name": "mydatabase",
  "purge_seq": 0,
  "update_seq": "2-g1AAAADDeJzLYWBgYMpgSmHgKy5JLCrJTq2MT8lPzkzJBYoNskvLycxL9dJSjbxsVc5ICg-fi5ZVwWmz0nFBTmRpX5AWFJifnJJYlJJc4JiaYm5ual1-v6J-fnF5Z4NKjKk2A0Pdqfbz0weOaeoBbx6tY",
  "sizes": {
    "file": 49640,
    "external": 7580,
    "active": 16208
  },
  "doc_del_count": 3,
  "doc_count": 4,
  "disk_size": 49640,
  "data_size": 7580,
  "compact_running": false,
  "instance_start_time": "0"
}
新建文档

新建文档的接口为 POST /db-name,请求体如下:

POST /mydb HTTP/1.1
Content-Type: application/json

{
  "name": "John Doe",
  "age": 30
}

返回结果如下:

HTTP/1.1 201 Created
Content-Type: application/json

{
  "ok": true,
  "id": "90f9f28286ddb71e5bbba2f50d002a27",
  "rev": "1-6b3b44575aebd28d1b031841bf840ba7"
}
获取文档

获取文档的接口为 GET /db-name/doc-id,其中 doc-id 为文档的 ID,返回结果如下:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "_id": "90f9f28286ddb71e5bbba2f50d002a27",
  "_rev": "1-6b3b44575aebd28d1b031841bf840ba7",
  "name": "John Doe",
  "age": 30
}
更新文档

更新文档的接口为 PUT /db-name/doc-id,其中 doc-id 为文档的 ID,请求体如下:

PUT /mydb/90f9f28286ddb71e5bbba2f50d002a27 HTTP/1.1
Content-Type: application/json

{
  "name": "John Smith",
  "age": 40
}

返回结果如下:

HTTP/1.1 201 Created
Content-Type: application/json

{
  "ok": true,
  "id": "90f9f28286ddb71e5bbba2f50d002a27",
  "rev": "2-82b05ee7c35f81d82540b120a6c7e1fd"
}
删除文档

删除文档的接口为 DELETE /db-name/doc-id,其中 doc-id 为文档的 ID,返回结果如下:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "ok": true,
  "id": "90f9f28286ddb71e5bbba2f50d002a27",
  "rev": "3-69476e1665c237585265a2a2476dc172"
}
结语

以上就是 CouchDB-HTTP API 的基本介绍,CouchDB 的 HTTP API 很强大很灵活,可以很好地与其他应用程序进行集成。