CouchDB - Curl y futón

Utilidad cURL

La utilidad cURL es una forma de comunicarse con CouchDB.

Es una herramienta para transferir datos desde o hacia un servidor, utilizando uno de los protocolos soportados (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP o FILE). El comando está diseñado para funcionar sin interacción del usuario. cURL ofrece una gran cantidad de trucos útiles como soporte de proxy, autenticación de usuario, carga de ftp, publicación HTTP, conexiones SSL (https :), cookies, resumen de transferencia de archivos y más.

La utilidad cURL está disponible en sistemas operativos como UNIX, Linux, Mac OS X y Windows. Es una utilidad de línea de comandos mediante la cual el usuario puede acceder al protocolo HTTP directamente desde la línea de comandos. Este capítulo le enseña cómo utilizar la utilidad cURL.

Usando la utilidad cURL

Puede acceder a cualquier sitio web utilizando la utilidad cURL simplemente escribiendo cURL seguido de la dirección del sitio web como se muestra a continuación:

curl www.tutorialspoint.com/

De forma predeterminada, la utilidad cURL devuelve el código fuente de la página solicitada. Muestra este código en la ventana del terminal.

Opciones de la utilidad cURL

La utilidad cURL proporciona varias opciones con las que trabajar, y puede verlas en la ayuda de la utilidad cURL.

El siguiente código muestra una parte de la ayuda de 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/[email protected]> 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

Al comunicarse con CouchDB, se utilizaron ampliamente ciertas opciones de la utilidad cURL. A continuación se muestran breves descripciones de algunas opciones importantes de la utilidad cURL, incluidas las utilizadas por CouchDB.

-Bandera X

(HTTP) Especifica un método de solicitud personalizado que se utiliza al comunicarse con el servidor HTTP. La solicitud especificada se usa en lugar del método que se usa de otra manera (que por defecto es GET). Lea la especificación HTTP 1.1 para obtener detalles y explicaciones.

(FTP) Especifica un comando FTP personalizado para usar en lugar de LIST cuando se hacen listas de archivos con ftp.

-H

(HTTP) Se utiliza un encabezado adicional al obtener una página web. Tenga en cuenta que si agrega un encabezado personalizado que tiene el mismo nombre que uno de los internos que usaría cURL, se usará el encabezado establecido externamente en lugar del interno. Esto le permite hacer un trabajo aún más complicado de lo que normalmente haría cURL. No debe reemplazar los encabezados establecidos internamente sin saber perfectamente lo que está haciendo. Reemplazar un encabezado interno con uno sin contenido en el lado derecho de los dos puntos evitará que aparezca ese encabezado.

cURL asegura que cada encabezado que agregue / reemplace se envíe con el marcador de final de línea adecuado. Ni debe agregar eso como parte del contenido del encabezado ni agregar nuevas líneas o retornos de carro a las cosas de desorden.

Consulte también las opciones -A / - user-agent y -e / - referer.

Esta opción se puede usar varias veces para agregar / reemplazar / eliminar múltiples encabezados.

-d bandera

Con este indicador de cURL, puede enviar datos junto con la solicitud HTTP POST al servidor, como si el usuario la hubiera llenado en el formulario y enviado.

Example

Suponga que hay un sitio web y desea iniciar sesión en él o enviar algunos datos al sitio web utilizando el indicador –d de la utilidad cURL como se muestra a continuación.

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

Envía un fragmento de publicación que parece "userid=001&password=tutorialspoint". Del mismo modo, también puede enviar documentos (JSON) utilizando el indicador -d.

-o bandera

Con este indicador, cURL escribe la salida de la solicitud en un archivo.

Example

El siguiente ejemplo muestra el uso de -o bandera de la utilidad 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

Esto obtiene el código fuente de la página de inicio de tutorialspoint.com, crea un archivo llamado example.com y guarda la salida en el archivo llamado example.html.

A continuación se muestra la instantánea del example.html.

-O

Esta bandera es similar a –o, la única diferencia es que con esta bandera, se creó un nuevo archivo con el mismo nombre que la URL solicitada y se copiará en él el código fuente de la URL solicitada.

Example

El siguiente ejemplo muestra el uso de -O bandera de la utilidad 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

Crea un nuevo archivo con el nombre index.htm y guarda en él el código fuente de la página de índice de tutorialspoint.com.

Hola CouchDB

Puede acceder a la página de inicio de CouchDB enviando una solicitud GET a la instancia de CouchDB instalada. En primer lugar, asegúrese de haber instalado CouchDB en su entorno Linux y de que se esté ejecutando correctamente, y luego use la siguiente sintaxis para enviar una solicitud de obtención a la instancia de CouchDB.

curl http://127.0.0.1:5984/

Esto le brinda un documento JSON como se muestra a continuación, donde CouchDB especifica los detalles como el número de versión, el nombre del proveedor y la versión del software.

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

Lista de todas las bases de datos

Puede obtener la lista de todas las bases de datos creadas enviando una solicitud de obtención junto con la cadena "_all_dbs string ". A continuación se muestra la sintaxis para obtener la lista de todas las bases de datos en CouchDB.

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

Le brinda la lista de todas las bases de datos en CouchDB como se muestra a continuación.

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

Crear una base de datos

Puede crear una base de datos en CouchDB usando cURL con encabezado PUT usando la siguiente sintaxis:

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

Ejemplo

Como ejemplo, utilizando la sintaxis dada anteriormente, cree una base de datos con el nombre my_database Como se muestra abajo.

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

Verificación

Verifique si la base de datos está creada, enumerando todas las bases de datos como se muestra a continuación. Aquí puede observar el nombre de la base de datos recién creada,"my_database" en la lista

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

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

Obtener información de la base de datos

Puede obtener la información sobre la base de datos mediante la solicitud de obtención junto con el nombre de la base de datos. A continuación se muestra la sintaxis para obtener la información de la base de datos.

Ejemplo

Como ejemplo, obtengamos la información de la base de datos denominada my_databaseComo se muestra abajo. Aquí puede obtener la información sobre su base de datos como respuesta.

$ 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 es la interfaz de administración integrada y basada en web de CouchDB. Proporciona una interfaz gráfica simple con la que puede interactuar con CouchDB. Es una interfaz ingenua y proporciona acceso completo a todas las funciones de CouchDB. A continuación se muestra la lista de esas características:

Databases −
  • Crea bases de datos.
  • Destruye bases de datos.
Documents −
  • Crea documentos.
  • Actualiza documentos.
  • Edita documentos.
  • Elimina documentos.

Futón inicial

Asegúrese de que CouchDB se esté ejecutando y luego abra la siguiente URL en el navegador:

http://127.0.0.1:5984/_utils/

Si abre esta url, muestra la página de inicio de Futon como se muestra a continuación:

  • En el lado izquierdo de esta página puede observar la lista de todas las bases de datos actuales de CouchDB. En esta ilustración, tenemos una base de datos llamadamy_database, junto con bases de datos definidas por el sistema _replicator y _user.

  • En el lado derecho puede ver lo siguiente:

    • Tools - En esta sección puedes encontrar Configuration para configurar CouchDB, Replicator para realizar réplicas, y Status para verificar el estado de CouchDB y las modificaciones recientes realizadas en CouchDB.

    • Documentation - Esta sección contiene la documentación completa para la versión reciente de CouchDB.

    • Diagnostics - Debajo de esto puede verificar la instalación de CouchDB.

    • Recent Databases - Debajo puede encontrar los nombres de las bases de datos agregadas recientemente.