1.4. cURL:您的命令行助手¶
curl
实用程序是一个命令行工具,可在 Unix、Linux、Mac OS X、Windows 和许多其他平台上使用。 curl
提供了直接从命令行访问 HTTP 协议(以及其他协议)的简便方法,因此是通过 HTTP REST API 与 CouchDB 交互的理想方式。
对于简单的 GET
请求,您可以提供请求的 URL。例如,要获取数据库信息
shell> curl http://admin:[email protected]:5984
这将返回数据库信息(在下面的输出中格式化以提高清晰度)
{
"couchdb": "Welcome",
"version": "3.0.0",
"git_sha": "83bdcf693",
"uuid": "56f16e7c93ff4a2dc20eb6acc7000b71",
"features": [
"access-ready",
"partitioned",
"pluggable-storage-engines",
"reshard",
"scheduler"
],
"vendor": {
"name": "The Apache Software Foundation"
}
}
注意
对于某些 URL,尤其是包含特殊字符(如&、!或?)的 URL,您应该在命令行上引用您指定的 URL。例如
shell> curl 'http://couchdb:5984/_uuids?count=5'
注意
在 Microsoft Windows 上,在以下示例中看到单引号的地方使用双引号。在看到单双引号的地方使用双双引号(“”)。例如,如果您看到
shell> curl -X PUT 'http://127.0.0.1:5984/demo/doc' -d '{"motto": "I love gnomes"}'
您应该将其替换为
shell> curl -X PUT "http://127.0.0.1:5984/demo/doc" -d "{""motto"": ""I love gnomes""}"
如果您愿意,可以使用 ^"
和 \"
来转义引号字符串中的双引号字符。
您可以使用 -X
命令行选项显式设置 HTTP 命令。例如,在创建数据库时,您使用 PUT 请求设置发送的 URL 中的数据库名称
shell> curl -X PUT http://user:[email protected]:5984/demo
{"ok":true}
但是,要获取数据库信息,您使用 GET
请求(返回信息格式化以提高清晰度)
shell> curl -X GET http://user:[email protected]:5984/demo
{
"compact_running" : false,
"doc_count" : 0,
"db_name" : "demo",
"purge_seq" : 0,
"committed_update_seq" : 0,
"doc_del_count" : 0,
"disk_format_version" : 5,
"update_seq" : 0,
"instance_start_time" : "0",
"disk_size" : 79
}
对于某些操作,您必须指定请求的内容类型,您可以通过使用 -H
命令行选项指定 Content-Type
标头来完成此操作
shell> curl -H 'Content-Type: application/json' http://127.0.0.1:5984/_uuids
您还可以提交“有效负载”数据,即使用 -d
选项在 HTTP 请求正文中提交的数据。如果您需要提交 JSON 结构(例如文档数据)作为请求的一部分,这将很有用。例如,要向 demo
数据库提交一个简单文档
shell> curl -H 'Content-Type: application/json' \
-X POST http://user:[email protected]:5984/demo \
-d '{"company": "Example, Inc."}'
{"ok":true,"id":"8843faaf0b831d364278331bc3001bd8",
"rev":"1-33b9fbce46930280dab37d672bbc8bb9"}
在上面的示例中,-d
选项后的参数是我们想要提交的文档的 JSON。
可以使用返回的自动生成的文档 ID 访问该文档
shell> curl -X GET http://user:[email protected]:5984/demo/8843faaf0b831d364278331bc3001bd8
{"_id":"8843faaf0b831d364278331bc3001bd8",
"_rev":"1-33b9fbce46930280dab37d672bbc8bb9",
"company":"Example, Inc."}
API 基础 中的 API 示例显示了需要提交的 HTTP 命令、URL 和任何有效负载信息(以及预期的返回值)。所有这些示例都可以使用上面显示的命令行示例使用 curl
复制。