CouchDB - Curl & Futon

Utilitas cURL

Utilitas cURL adalah cara untuk berkomunikasi dengan CouchDB.

Ini adalah alat untuk mentransfer data dari atau ke server, menggunakan salah satu protokol yang didukung (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP atau FILE). Perintah dirancang untuk bekerja tanpa interaksi pengguna. cURL menawarkan banyak trik berguna seperti dukungan proxy, otentikasi pengguna, unggahan ftp, pos HTTP, koneksi SSL (https :), cookie, resume transfer file, dan banyak lagi.

Utilitas cURL tersedia di sistem operasi seperti UNIX, Linux, Mac OS X dan Windows. Ini adalah utilitas baris perintah yang digunakan pengguna yang dapat mengakses protokol HTTP langsung dari baris perintah. Bab ini mengajarkan Anda cara menggunakan utilitas cURL.

Menggunakan cURL Utility

Anda dapat mengakses situs web apa pun menggunakan utilitas cURL hanya dengan mengetik cURL diikuti dengan alamat situs web seperti yang ditunjukkan di bawah ini -

curl www.tutorialspoint.com/

Secara default, utilitas cURL mengembalikan kode sumber dari halaman yang diminta. Ini menampilkan kode ini di jendela terminal.

Opsi Utilitas cURL

Utilitas cURL menyediakan berbagai opsi untuk digunakan, dan Anda dapat melihatnya di bantuan utilitas cURL.

Kode berikut menunjukkan beberapa bagian dari bantuan 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

Saat berkomunikasi dengan CouchDB, opsi utilitas cURL tertentu digunakan secara ekstensif. Berikut adalah uraian singkat dari beberapa opsi penting dari utilitas cURL termasuk yang digunakan oleh CouchDB.

-X bendera

(HTTP) Menentukan metode permintaan khusus yang digunakan saat berkomunikasi dengan server HTTP. Permintaan yang ditentukan digunakan sebagai ganti metode yang digunakan (yang defaultnya adalah GET). Baca spesifikasi HTTP 1.1 untuk detail dan penjelasannya.

(FTP) Menentukan perintah FTP kustom untuk digunakan sebagai ganti LIST saat melakukan daftar file dengan ftp.

-H

(HTTP) Header ekstra digunakan saat membuka halaman web. Perhatikan bahwa jika Anda menambahkan tajuk ubahsuaian yang memiliki nama yang sama dengan salah satu tajuk internal yang akan digunakan cURL, tajuk yang ditetapkan secara eksternal akan digunakan, bukan yang internal. Hal ini memungkinkan Anda untuk membuat pekerjaan yang lebih rumit daripada yang biasanya dilakukan cURL. Anda tidak boleh mengganti tajuk yang disetel secara internal tanpa mengetahui dengan sempurna apa yang Anda lakukan. Mengganti tajuk internal dengan tajuk tanpa konten di sisi kanan titik dua, akan mencegah tajuk tersebut muncul.

cURL memastikan bahwa setiap header yang Anda tambahkan / ganti dikirim dengan penanda garis akhir yang tepat. Anda tidak perlu menambahkannya sebagai bagian dari konten header atau menambahkan baris baru atau carriage return untuk mengacaukan hal-hal.

Lihat juga opsi -A / - user-agent dan -e / - referer.

Opsi ini dapat digunakan beberapa kali untuk menambah / mengganti / menghapus beberapa header.

bendera -d

Dengan menggunakan flag cURL ini, Anda dapat mengirim data bersama dengan permintaan HTTP POST ke server, seolah-olah itu diisi oleh pengguna dalam formulir dan dikirimkan.

Example

Misalkan ada sebuah website dan Anda ingin login ke dalamnya atau mengirimkan beberapa data ke website tersebut menggunakan flag –d dari utilitas cURL seperti gambar di bawah ini.

curl -X PUT http://mywebsite.com/login.html -d userid=001 -d password=tutorialspoint

Ini mengirimkan potongan posting yang terlihat seperti "userid=001&password=tutorialspoint". Demikian juga Anda juga bisa mengirim dokumen (JSON) menggunakan -d flag.

-o bendera

Dengan menggunakan tanda ini, cURL menulis keluaran permintaan ke sebuah file.

Example

Contoh berikut menunjukkan penggunaan -o bendera utilitas 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

Ini mendapatkan kode sumber dari beranda tutorialspoint.com, membuat file bernama example.com dan menyimpan hasilnya dalam file bernama example.html.

Berikut adalah snapshot dari example.html.

-HAI

Bendera ini mirip dengan –o, satu-satunya perbedaan adalah dengan tanda ini, file baru dengan nama yang sama dengan url yang diminta telah dibuat, dan kode sumber dari url yang diminta akan disalin ke sana.

Example

Contoh berikut menunjukkan penggunaan -O bendera utilitas 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

Ini membuat file baru dengan nama index.htm dan menyimpan kode sumber dari halaman indeks tutorialspoint.com di dalamnya.

Halo CouchDB

Anda dapat mengakses beranda CouchDB dengan mengirimkan permintaan GET ke instans CouchDB yang diinstal. Pertama-tama pastikan Anda telah menginstal CouchDB di lingkungan Linux Anda dan berjalan dengan sukses, lalu gunakan sintaks berikut untuk mengirim permintaan get ke instans CouchDB.

curl http://127.0.0.1:5984/

Ini memberi Anda dokumen JSON seperti yang ditunjukkan di bawah ini di mana CouchDB menentukan detail seperti nomor versi, nama vendor, dan versi perangkat lunak.

$ 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"
   }
}

Daftar Semua Database

Anda bisa mendapatkan daftar semua database yang dibuat, dengan mengirimkan permintaan get bersama dengan stringnya "_all_dbs string ". Berikut ini adalah sintaks untuk mendapatkan daftar semua database di CouchDB.

curl -X GET http://127.0.0.1:5984/_all_dbs

Ini memberi Anda daftar semua database di CouchDB seperti yang ditunjukkan di bawah ini.

$ curl -X GET http://127.0.0.1:5984/_all_dbs
[ "_replicator" , "_users" ]

Membuat Database

Anda dapat membuat database di CouchDB menggunakan cURL dengan header PUT menggunakan sintaks berikut -

$ curl -X PUT http://127.0.0.1:5984/database_name

Contoh

Sebagai contoh, dengan menggunakan sintaks yang diberikan di atas, buat database dengan nama my_database seperti gambar dibawah.

$ curl -X PUT http://127.0.0.1:5984/my_database
{"ok":true}

Verifikasi

Verifikasi apakah database dibuat, dengan mendaftar semua database seperti yang ditunjukkan di bawah ini. Di sini Anda dapat mengamati nama database yang baru dibuat,"my_database" dalam daftar

$ curl -X GET http://127.0.0.1:5984/_all_dbs

[ "_replicator " , "_users" , "my_database" ]

Mendapatkan Info Database

Anda bisa mendapatkan informasi tentang database menggunakan permintaan get bersama dengan nama database. Berikut sintaks untuk mendapatkan informasi database.

Contoh

Sebagai contoh mari kita dapatkan informasi dari database bernama my_databaseseperti gambar dibawah. Di sini Anda bisa mendapatkan informasi tentang database Anda sebagai tanggapan.

$ 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 adalah built-in, berbasis web, antarmuka administrasi CouchDB. Ini menyediakan antarmuka grafis sederhana yang dapat digunakan untuk berinteraksi dengan CouchDB. Ini adalah antarmuka yang naif dan menyediakan akses penuh ke semua fitur CouchDB. Berikut adalah daftar fitur tersebut -

Databases −
  • Membuat database.
  • Hancurkan database.
Documents −
  • Membuat dokumen.
  • Memperbarui dokumen.
  • Mengedit dokumen.
  • Menghapus dokumen.

Mulai Futon

Pastikan CouchDB sedang berjalan dan kemudian buka url berikut di browser -

http://127.0.0.1:5984/_utils/

Jika Anda membuka url ini, ini akan menampilkan beranda Futon seperti yang ditunjukkan di bawah ini -

  • Di sisi kiri halaman ini Anda dapat mengamati daftar semua database CouchDB saat ini. Dalam ilustrasi ini, kami memiliki database bernamamy_database, bersama dengan database yang ditentukan sistem _replicator dan _user.

  • Di sisi kanan Anda dapat melihat yang berikut -

    • Tools - Di bagian ini Anda dapat menemukan Configuration untuk mengkonfigurasi CouchDB, Replicator untuk melakukan ulangan, dan Status untuk memverifikasi status CouchDB dan modifikasi terbaru yang dilakukan pada CouchDB.

    • Documentation - Bagian ini berisi dokumentasi lengkap untuk versi terbaru CouchDB.

    • Diagnostics - Di bawah ini, Anda dapat memverifikasi instalasi CouchDB.

    • Recent Databases - Di bawah ini Anda dapat menemukan nama-nama database yang baru ditambahkan.