Учебники

CouchDB — Curl & Futon

Утилита cURL — это способ связи с CouchDB.

Это инструмент для передачи данных с или на сервер, используя один из поддерживаемых протоколов (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP или FILE). Команда предназначена для работы без взаимодействия с пользователем. cURL предлагает множество полезных трюков, таких как поддержка прокси, аутентификация пользователя, загрузка ftp, HTTP post, соединения SSL (https :), куки, возобновление передачи файлов и многое другое.

Утилита cURL доступна в операционных системах, таких как UNIX, Linux, Mac OS X и Windows. Это утилита командной строки, с помощью которой пользователь может получить доступ к протоколу HTTP прямо из командной строки. В этой главе вы узнаете, как использовать утилиту cURL.

Использование утилиты cURL

Вы можете получить доступ к любому веб-сайту с помощью утилиты cURL, просто набрав cURL, а затем адрес веб-сайта, как показано ниже —

curl www.tutorialspoint.com/

По умолчанию утилита cURL возвращает исходный код запрашиваемой страницы. Он отображает этот код в окне терминала.

Параметры утилиты cURL

Утилита cURL предоставляет различные опции для работы, и вы можете увидеть их в справке утилиты cURL.

Следующий код показывает некоторую часть справки 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

При общении с CouchDB широко использовались определенные опции утилиты cURL. Ниже приведены краткие описания некоторых важных опций утилиты cURL, в том числе используемых CouchDB.

Флаг -X

(HTTP) Определяет пользовательский метод запроса, используемый при взаимодействии с HTTP-сервером. Указанный запрос используется вместо используемого в противном случае метода (по умолчанию используется GET). Прочитайте спецификацию HTTP 1.1 для деталей и объяснений.

(FTP) Определяет настраиваемую команду FTP для использования вместо LIST при создании списков файлов с помощью ftp.

-ЧАС

(HTTP) Дополнительный заголовок используется при получении веб-страницы. Обратите внимание, что если вы добавите пользовательский заголовок, имя которого совпадает с именем одного из внутренних, которое будет использовать cURL, вместо внутреннего будет использоваться ваш внешний установленный заголовок. Это позволяет сделать работу еще сложнее, чем обычно делает cURL. Вы не должны заменять внутренние заголовки, не зная точно, что вы делаете. Замена внутреннего заголовка заголовком без содержимого в правой части двоеточия предотвратит появление этого заголовка.

cURL гарантирует, что каждый добавленный / замененный заголовок будет отправлен с соответствующим маркером конца строки. Ни вы не должны добавлять это как часть содержимого заголовка, ни добавлять новые строки или возврат каретки к беспорядочным вещам.

Смотрите также параметры -A / — user-agent и -e / — referer.

Эта опция может использоваться несколько раз для добавления / замены / удаления нескольких заголовков.

флаг

Используя этот флаг cURL, вы можете отправлять данные вместе с HTTP-запросом POST на сервер, как если бы он был заполнен пользователем в форме и отправлен.

пример

Предположим, что есть веб-сайт, и вы хотите войти на него или отправить некоторые данные на веб-сайт, используя флаг –d утилиты cURL, как показано ниже.

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

Он отправляет фрагмент сообщения, который выглядит как «userid = 001 & password = tutorialspoint» . Также вы можете отправлять документы (JSON), используя флаг -d.

флаг

Используя этот флаг, cURL записывает вывод запроса в файл.

пример

В следующем примере показано использование флага -o утилиты 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

Он получает исходный код домашней страницы tutorialspoint.com, создает файл с именем example.com и сохраняет выходные данные в файле example.html.

Ниже приведен снимок файла example.html .

Пример HTML

Этот флаг аналогичен –o , единственное отличие состоит в том, что этот флаг создает новый файл с тем же именем, что и запрошенный URL-адрес, и исходный код запрошенного URL-адреса будет скопирован в него.

пример

В следующем примере показано использование флага -O утилиты 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

Он создает новый файл с именем index.htm и сохраняет в нем исходный код страницы индекса tutorialspoint.com.

Привет CouchDB

Вы можете получить доступ к домашней странице CouchDB, отправив запрос GET на установленный экземпляр CouchDB. Прежде всего убедитесь, что вы установили CouchDB в вашей среде Linux, и он успешно работает, а затем используйте следующий синтаксис для отправки запроса на получение экземпляра CouchDB.

curl http://127.0.0.1:5984/

Это дает вам документ JSON, как показано ниже, где CouchDB указывает такие детали, как номер версии, имя поставщика и версия программного обеспечения.

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

Список всех баз данных

Вы можете получить список всех созданных баз данных, отправив запрос get вместе со строкой «_all_dbs string» . Ниже приведен синтаксис для получения списка всех баз данных в CouchDB.

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

Это дает вам список всех баз данных в CouchDB, как показано ниже.

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

Создание базы данных

Вы можете создать базу данных в CouchDB, используя cURL с заголовком PUT, используя следующий синтаксис:

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

пример

В качестве примера, используя приведенный выше синтаксис, создайте базу данных с именем my_database, как показано ниже.

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

верификация

Проверьте, создана ли база данных, перечислив все базы данных, как показано ниже. Здесь вы можете увидеть имя вновь созданной базы данных «my_database» в списке

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

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

Получение информации о базе данных

Вы можете получить информацию о базе данных, используя запрос get вместе с именем базы данных. Ниже приводится синтаксис для получения информации о базе данных.

пример

В качестве примера давайте получим информацию о базе данных с именем my_database, как показано ниже. Здесь вы можете получить информацию о вашей базе данных в ответ.

$ 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 — это встроенный веб-интерфейс администрирования CouchDB. Он предоставляет простой графический интерфейс, с помощью которого вы можете взаимодействовать с CouchDB. Это простой интерфейс, обеспечивающий полный доступ ко всем функциям CouchDB. Ниже приведен список этих функций —

Базы данных —

  • Создает базы данных.
  • Уничтожает базы данных.

Документы —

  • Создает документы.
  • Обновляет документы.
  • Редактирует документы.
  • Удаляет документы.

Начиная Футон

Убедитесь, что CouchDB запущен, а затем откройте следующий URL в браузере —

http://127.0.0.1:5984/_utils/

Если вы откроете этот URL, он отобразит домашнюю страницу Futon, как показано ниже —

В левой части этой страницы вы можете увидеть список всех текущих баз данных CouchDB. На этом рисунке у нас есть база данных с именем my_database , а также системные базы данных _replicator и _user .

На правой стороне вы можете увидеть следующее —

Инструменты — в этом разделе вы можете найти Конфигурация для настройки CouchDB, Replicator для выполнения репликаций и Status для проверки состояния CouchDB и последних изменений, выполненных на CouchDB.

Документация — этот раздел содержит полную документацию по последней версии CouchDB.

Диагностика — при этом вы можете проверить установку CouchDB.

Последние базы данных — в этом разделе вы можете найти имена недавно добавленных баз данных.