CouchDB HTTP API
HTTP請求用於與CouchDB進行通信。
通過使用這些請求,可以 -
- 從數據庫檢索數據
- 將數據以文件的形式存儲到數據庫中
- 查看並格式化存儲在數據庫中的文檔。
HTTP請求格式
在通信時,數據庫使用不同的請求格式。 這些請求格式有:get
,head
,post
,put
,delete
和copy
。
在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
。