CouchDB HTTP API

HTTP請求用於與CouchDB進行通信。

通過使用這些請求,可以 -

  • 從數據庫檢索數據
  • 將數據以文件的形式存儲到數據庫中
  • 查看並格式化存儲在數據庫中的文檔。

HTTP請求格式

在通信時,數據庫使用不同的請求格式。 這些請求格式有:getheadpostputdeletecopy

在CouchDB中,輸入數據和輸出數據結構將以所有操作的JavaScript對象符號(JSON)對象的形式。

請參閱用於與CouchDB通信的HTTP協議的不同請求格式,如下所列 -

GET:GET請求格式用於獲取特定項目。 要獲取不同的項目,必須發送特定的網址模式。 在CouchDB中使用此GET請求,以JSON文檔的形式獲取靜態項,數據庫文檔和配置以及統計信息。
HEAD:HEAD方法用於獲取GET請求的HTTP頭,而不需要響應的正文。
POST:Post請求用於上傳數據。 在CouchDB中,POST請求主要用於設置值,上傳文檔,設置文檔值,還可以啓動某些管理命令。
PUT:PUT請求用於創建新對象,數據庫,文檔,視圖和設計文檔。
DELETE:DELETE請求用於刪除文檔,視圖和設計文檔。
COPY:COPY方法用於複製文檔和對象。

HTTP請求標頭

提供HTTP標頭以獲得正確的格式和編碼。 HTTP請求頭與請求一起發送,同時將請求發送到CouchDB服務器。 下面將解釋不同的Http請求標頭。

Content-type:內容類型(Content-type)標頭用於指定提供給服務器的數據的內容類型以及請求。大多數情況下,發送的內容類型將是MIME類型或JSON(application/JSON)。 強烈建議在請求上使用Content-type

Accept:Accept標頭用於指定服務器,客戶端可以理解的數據類型列表,以便服務器將使用這些數據類型發送其響應。 一般來說,可以發送客戶端接受的MIME數據類型列表,數據項之前以冒號分隔。

在CouchDB中,不需要在查詢中使用Accept,但強烈建議確保返回的數據可以由客戶端處理。

HTTP響應頭

HTTP響應頭是服務器發送的一種響應類型。 這些標頭提供了有關服務器作爲響應發送的內容的信息。

4種類型的響應頭:

Content-type : 內容類型(Content-type)響應頭指定服務器返回的數據的MIME類型。對於大多數請求,返回的MIME類型是text/plain

Cache-control:緩存控制(Cache-control)響應頭用於建議客戶端處理服務器發送的信息。 CouchDB主要返回must-revalidate,這表示如果可能的話,該信息應該被重新驗證。

Content-length : 內容長度(Content-length)響應頭用於獲取服務器發送的內容的長度(以字節爲單位)。

Etag : Etag標頭用於顯示文檔或視圖的修訂版本。

HTTP頭的狀態碼

下表指定了HTTP頭髮送的狀態代碼及其工作情況:

狀態碼

描述

200 - OK

當請求成功完成時,會生成此狀態。

201 - Created

創建文檔時會生成此狀態。

202 - Accepted

當接受請求時,會生成此狀態。

404 - Not Found

當服務器無法找到請求的內容時,會發出此狀態。

405 - Resource Not Allowed

當所使用的http請求類型無效時,會發出此狀態。

409 - Conflict

每當有任何更新衝突時,都會發出此狀態。

415 - Bad Content Type

此狀態指定服務器不支持請求的內容類型。

500 - Internal Server Error

無論何時請求發送無效數據,都會發出此狀態。

與數據庫交互的HTTP URL路徑

以下是用於直接與數據庫交互的一些URL路徑列表。

URL

操作說明

PUT /db

PUT url用於創建一個新的數據庫。

GET /db

GET url用於獲取有關現有數據庫的信息。

PUT /db/document

PUT url用於創建文檔/更新現有文檔。

GET /db/document

GET url用於獲取文檔。

DELETE /db/document

DELETE url用於從指定的數據庫中刪除指定的文檔。

GET /db/_design/design-doc

此URL用於獲取設計文檔的定義。

GET /db/_design/designdoc/_view/view-name

此URL用於從指定的數據庫訪問設計文檔中的視圖 - view-name