1.4. 你的命令行朋友¶
这个 curl
utility是一个命令行工具,可用于Unix、Linux、Mac OS X、Windows和许多其他平台。 curl
提供直接从命令行对HTTP协议(以及其他协议)的简单访问,因此是通过httprestapi与CouchDB交互的理想方式。
为了简单 GET
请求您可以提供请求的URL。例如,要获取数据库信息:
shell> curl http://admin:password@127.0.0.1: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
命令行选项。例如,创建数据库时,可以在使用PUT请求发送的URL中设置数据库的名称:
shell> curl -X PUT http://user:pass@127.0.0.1:5984/demo
{"ok":true}
但是要获取数据库信息,您可以使用 GET
请求(返回信息格式清晰):
shell> curl -X GET http://user:pass@127.0.0.1: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
}
对于某些操作,必须指定请求的内容类型,这可以通过指定 Content-Type
标题使用 -H
命令行选项:
shell> curl -H 'Content-Type: application/json' http://127.0.0.1:5984/_uuids
您还可以使用 -d
选项。如果您需要将JSON结构(例如文档数据)作为请求的一部分提交,这将非常有用。例如,向 demo
数据库:
shell> curl -H 'Content-Type: application/json' \
-X POST http://user:pass@127.0.0.1:5984/demo \
-d '{"company": "Example, Inc."}'
{"ok":true,"id":"8843faaf0b831d364278331bc3001bd8",
"rev":"1-33b9fbce46930280dab37d672bbc8bb9"}
在上面的示例中 -d
选项是我们要提交的文档的JSON。
可以使用自动生成的返回的文档ID访问文档:
shell> curl -X GET http://user:pass@127.0.0.1:5984/demo/8843faaf0b831d364278331bc3001bd8
{"_id":"8843faaf0b831d364278331bc3001bd8",
"_rev":"1-33b9fbce46930280dab37d672bbc8bb9",
"company":"Example, Inc."}
API示例 API基础知识 显示HTTP命令、URL和需要提交的任何负载信息(以及预期的返回值)。所有这些例子都可以用 curl
使用上面显示的命令行示例。