CouchDB - Curl & Futon
cURL Utility
Tiện ích cURL là một cách để giao tiếp với CouchDB.
Nó là một công cụ để truyền dữ liệu từ hoặc đến một máy chủ, sử dụng một trong các giao thức được hỗ trợ (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP hoặc FILE). Lệnh được thiết kế để hoạt động mà không cần sự tương tác của người dùng. cURL cung cấp một loạt các thủ thuật hữu ích như hỗ trợ proxy, xác thực người dùng, tải lên ftp, bài đăng HTTP, kết nối SSL (https :), cookie, tiếp tục truyền tệp và hơn thế nữa.
Tiện ích cURL có sẵn trong các hệ điều hành như UNIX, Linux, Mac OS X và Windows. Nó là một tiện ích dòng lệnh sử dụng mà người dùng có thể truy cập giao thức HTTP ngay từ dòng lệnh. Chương này hướng dẫn bạn cách sử dụng tiện ích cURL.
Sử dụng Tiện ích cURL
Bạn có thể truy cập bất kỳ trang web nào bằng tiện ích cURL bằng cách chỉ cần gõ cURL theo sau là địa chỉ trang web như hình dưới đây -
curl www.tutorialspoint.com/
Theo mặc định, tiện ích cURL trả về mã nguồn của trang được yêu cầu. Nó hiển thị mã này trên cửa sổ đầu cuối.
Tùy chọn tiện ích cURL
Tiện ích cURL cung cấp nhiều tùy chọn khác nhau để làm việc và bạn có thể xem chúng trong phần trợ giúp tiện ích cURL.
Đoạn mã sau đây hiển thị một số phần của trợ giúp cURL.
$ curl --help
Usage: curl [options...] <url>
Options: (H) means HTTP/HTTPS only, (F) means FTP only
--anyauth Pick "any" authentication method (H)
-a/--append Append to target file when uploading (F/SFTP)
--basic Use HTTP Basic Authentication (H)
--cacert <file> CA certificate to verify peer against (SSL)
-d/--data <data> HTTP POST data (H)
--data-ascii <data> HTTP POST ASCII data (H)
--data-binary <data> HTTP POST binary data (H)
--data-urlencode <name=data/name@filename> HTTP POST data
urlencoded (H)
--delegation STRING GSS-API delegation permission
--digest Use HTTP Digest Authentication (H)
--disable-eprt Inhibit using EPRT or LPRT (F)
--disable-epsv Inhibit using EPSV (F)
-F/--form <name=content> Specify HTTP multipart POST data (H)
--form-string <name=string> Specify HTTP multipart POST data (H)
--ftp-account <data> Account data to send when requested by server
(F)
--ftp-alternative-to-user <cmd> String to replace "USER [name]" (F)
--ftp-create-dirs Create the remote dirs if not present (F)
--ftp-method [multi cwd/no cwd/single cwd] Control CWD usage (F)
--ftp-pasv Use PASV/EPSV instead of PORT (F)
-G/--get Send the -d data with a HTTP GET (H)
-H/--header <line> Custom header to pass to server (H)
-I/--head Show document info only
-h/--help This help text
--hostpubmd5 <md5> Hex encoded MD5 string of the host public key.
(SSH)
-0/--http1.0 Use HTTP 1.0 (H)
--ignore-content-length Ignore the HTTP Content-Length header
-i/--include Include protocol headers in the output (H/F)
-M/--manual Display the full manual
-o/--output <file> Write output to <file> instead of stdout
--pass <pass> Pass phrase for the private key (SSL/SSH)
--post301 Do not switch to GET after following a 301
redirect (H)
--post302 Do not switch to GET after following a 302
redirect (H)
-O/--remote-name Write output to a file named as the remote file
--remote-name-all Use the remote file name for all URLs
-R/--remote-time Set the remote file's time on the local output
-X/--request <command> Specify request command to use
--retry <num> Retry request <num> times if transient problems
occur
--retry-delay <seconds> When retrying, wait this many seconds
between each
--retry-max-time <seconds> Retry only within this period
-T/--upload-file <file> Transfer <file> to remote site
--url <URL> Set URL to work with
-B/--use-ascii Use ASCII/text transfer
Trong khi giao tiếp với CouchDB, một số tùy chọn của tiện ích cURL đã được sử dụng rộng rãi. Sau đây là những mô tả ngắn gọn về một số tùy chọn quan trọng của tiện ích cURL bao gồm cả những tùy chọn được CouchDB sử dụng.
-X cờ
(HTTP) Chỉ định phương thức yêu cầu tùy chỉnh được sử dụng khi giao tiếp với máy chủ HTTP. Yêu cầu đã chỉ định được sử dụng thay vì phương thức được sử dụng khác (mặc định là GET). Đọc thông số kỹ thuật HTTP 1.1 để biết chi tiết và giải thích.
(FTP) Chỉ định một lệnh FTP tùy chỉnh để sử dụng thay vì LIST khi thực hiện danh sách tệp với ftp.
-H
(HTTP) Tiêu đề bổ sung được sử dụng khi tải một trang web. Lưu ý rằng nếu bạn thêm tiêu đề tùy chỉnh có cùng tên với một trong những tiêu đề nội bộ mà cURL sẽ sử dụng, thì tiêu đề đặt bên ngoài của bạn sẽ được sử dụng thay vì tiêu đề nội bộ. Điều này cho phép bạn thực hiện công việc thậm chí còn phức tạp hơn cURL thường làm. Bạn không nên thay thế các tiêu đề được thiết lập nội bộ mà không biết rõ mình đang làm gì. Thay thế tiêu đề nội bộ bằng tiêu đề không có nội dung ở bên phải dấu hai chấm sẽ ngăn tiêu đề đó xuất hiện.
cURL đảm bảo rằng mỗi tiêu đề bạn thêm / thay thế sẽ được gửi bằng điểm đánh dấu cuối dòng thích hợp. Bạn không nên thêm nó như một phần của nội dung tiêu đề hoặc thêm dòng mới hoặc ký tự xuống dòng để làm rối loạn mọi thứ.
Xem thêm các tùy chọn -A / - tác nhân người dùng và -e / - giới thiệu.
Tùy chọn này có thể được sử dụng nhiều lần để thêm / thay thế / loại bỏ nhiều tiêu đề.
-d cờ
Sử dụng cờ này của cURL, bạn có thể gửi dữ liệu cùng với yêu cầu HTTP POST tới máy chủ, như thể nó được người dùng điền vào biểu mẫu và gửi đi.
Example
Giả sử có một trang web và bạn muốn đăng nhập vào đó hoặc gửi một số dữ liệu đến trang web bằng cách sử dụng cờ –d của tiện ích cURL như hình dưới đây.
curl -X PUT http://mywebsite.com/login.html -d userid=001 -d password=tutorialspoint
Nó gửi một đoạn bài đăng trông giống như "userid=001&password=tutorialspoint". Tương tự như vậy, bạn cũng có thể gửi tài liệu (JSON) bằng cờ -d.
-o cờ
Sử dụng cờ này, cURL ghi đầu ra của yêu cầu vào một tệp.
Example
Ví dụ sau đây cho thấy việc sử dụng -o cờ của tiện ích cURL.
$ curl -o example.html www.tutorialspoint.com/index.htm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 81193 0 81193 0 0 48168 0 --:--:-- 0:00:01 --:--:--
58077
Điều này lấy mã nguồn của trang chủ của tutorialspoint.com, tạo một tệp có tên example.com và lưu đầu ra trong tệp có tên example.html.
Sau đây là ảnh chụp nhanh của example.html.
-O
Cờ này tương tự như –o, sự khác biệt duy nhất là với cờ này, một tệp mới có cùng tên với url được yêu cầu đã được tạo và mã nguồn của url được yêu cầu sẽ được sao chép vào nó.
Example
Ví dụ sau đây cho thấy việc sử dụng -O cờ của tiện ích cURL.
$ curl -O www.tutorialspoint.com/index.htm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left
Speed
100 81285 0 81285 0 0 49794 0 --:--:-- 0:00:01 --:--:--
60077
Nó tạo một tệp mới với tên index.htm và lưu mã nguồn của trang chỉ mục của tutorialspoint.com trong đó.
Xin chào CouchDB
Bạn có thể truy cập trang chủ của CouchDB bằng cách gửi yêu cầu GET tới phiên bản CouchDB đã cài đặt. Trước hết, hãy đảm bảo rằng bạn đã cài đặt CouchDB trong môi trường Linux của mình và nó đang chạy thành công, sau đó sử dụng cú pháp sau để gửi yêu cầu nhận đến phiên bản CouchDB.
curl http://127.0.0.1:5984/
Điều này cung cấp cho bạn một tài liệu JSON như được hiển thị bên dưới trong đó CouchDB chỉ định các chi tiết như số phiên bản, tên của nhà cung cấp và phiên bản của phần mềm.
$ curl http://127.0.0.1:5984/
{
"couchdb" : "Welcome",
"uuid" : "8f0d59acd0e179f5e9f0075fa1f5e804",
"version" : "1.6.1",
"vendor" : {
"name":"The Apache Software Foundation",
"version":"1.6.1"
}
}
Danh sách tất cả cơ sở dữ liệu
Bạn có thể lấy danh sách tất cả các cơ sở dữ liệu đã tạo bằng cách gửi một yêu cầu nhận cùng với chuỗi "_all_dbs string ". Sau đây là cú pháp để lấy danh sách tất cả cơ sở dữ liệu trong CouchDB.
curl -X GET http://127.0.0.1:5984/_all_dbs
Nó cung cấp cho bạn danh sách tất cả các cơ sở dữ liệu trong CouchDB như hình dưới đây.
$ curl -X GET http://127.0.0.1:5984/_all_dbs
[ "_replicator" , "_users" ]
Tạo cơ sở dữ liệu
Bạn có thể tạo cơ sở dữ liệu trong CouchDB bằng cách sử dụng cURL với tiêu đề PUT bằng cú pháp sau:
$ curl -X PUT http://127.0.0.1:5984/database_name
Thí dụ
Ví dụ: sử dụng cú pháp đã cho ở trên tạo cơ sở dữ liệu với tên my_database như hình bên dưới.
$ curl -X PUT http://127.0.0.1:5984/my_database
{"ok":true}
xác minh
Xác minh xem cơ sở dữ liệu có được tạo hay không, bằng cách liệt kê tất cả các cơ sở dữ liệu như hình dưới đây. Tại đây bạn có thể quan sát tên của cơ sở dữ liệu mới được tạo,"my_database" trong danh sách
$ curl -X GET http://127.0.0.1:5984/_all_dbs
[ "_replicator " , "_users" , "my_database" ]
Nhận thông tin cơ sở dữ liệu
Bạn có thể lấy thông tin về cơ sở dữ liệu bằng cách sử dụng yêu cầu nhận cùng với tên cơ sở dữ liệu. Sau đây là cú pháp để lấy thông tin cơ sở dữ liệu.
Thí dụ
Ví dụ, chúng ta hãy lấy thông tin của cơ sở dữ liệu có tên my_databasenhư hình bên dưới. Tại đây, bạn có thể lấy thông tin về cơ sở dữ liệu của mình dưới dạng phản hồi.
$ curl -X GET http://127.0.0.1:5984/my_database
{
"db_name" : "my_database",
"doc_count" : 0,
"doc_del_count" : 0,
"update_seq" : 0,
"purge_seq" : 0,
"compact_running" : false,
"disk_size" : 79,
"data_size" : 0,
"instance_start_time" : "1423628520835029",
"disk_format_version" : 6,
"committed_update_seq" : 0
}
Futon
Futon là giao diện quản trị được tích hợp sẵn, dựa trên web của CouchDB. Nó cung cấp một giao diện đồ họa đơn giản mà bạn có thể tương tác với CouchDB. Đó là một giao diện ngây thơ và nó cung cấp quyền truy cập đầy đủ vào tất cả các tính năng của CouchDB. Sau đây là danh sách các tính năng đó -
Databases −- Tạo cơ sở dữ liệu.
- Phá hủy cơ sở dữ liệu.
- Tạo tài liệu.
- Cập nhật tài liệu.
- Chỉnh sửa tài liệu.
- Xóa tài liệu.
Bắt đầu Futon
Đảm bảo CouchDB đang chạy và sau đó mở url sau trong trình duyệt -
http://127.0.0.1:5984/_utils/
Nếu bạn mở url này, nó sẽ hiển thị trang chủ Futon như hình dưới đây -
Ở phía bên trái của trang này, bạn có thể quan sát danh sách tất cả các cơ sở dữ liệu hiện tại của CouchDB. Trong hình minh họa này, chúng tôi có một cơ sở dữ liệu có tênmy_database, cùng với cơ sở dữ liệu do hệ thống xác định _replicator và _user.
Ở phía bên tay phải, bạn có thể thấy như sau:
Tools - Trong phần này, bạn có thể tìm thấy Configuration để định cấu hình CouchDB, Replicator để thực hiện các bản sao, và Status để xác minh trạng thái của CouchDB và các sửa đổi gần đây được thực hiện trên CouchDB.
Documentation - Phần này chứa tài liệu đầy đủ cho phiên bản CouchDB gần đây.
Diagnostics - Theo đó, bạn có thể xác minh việc cài đặt CouchDB.
Recent Databases - Dưới đây, bạn có thể tìm thấy tên của cơ sở dữ liệu được thêm gần đây.