Couchdb-curl-futon
CouchDB-カールと布団
cURLユーティリティ
cURLユーティリティは、CouchDBと通信する方法です。
サポートされているプロトコル(HTTP、HTTPS、FTP、FTPS、TFTP、DICT、TELNET、LDAP、またはFILE)のいずれかを使用して、サーバーとの間でデータを転送するツールです。 このコマンドは、ユーザーの操作なしで機能するように設計されています。 cURLは、プロキシサポート、ユーザー認証、ftpアップロード、HTTPポスト、SSL(https :)接続、Cookie、ファイル転送再開などの便利なトリックを大量に提供します。
cURLユーティリティは、UNIX、Linux、Mac OS X、Windowsなどのオペレーティングシステムで使用できます。 これは、ユーザーがコマンドラインからHTTPプロトコルに直接アクセスできるコマンドラインユーティリティです。 この章では、cURLユーティリティの使用方法について説明します。
cURLユーティリティの使用
以下に示すように、cURLに続けてWebサイトのアドレスを入力するだけで、cURLユーティリティを使用して任意のWebサイトにアクセスできます-
curl www.finddevguides.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ユーティリティの特定のオプションが広範囲に使用されました。 以下は、CouchDBで使用されるオプションを含むcURLユーティリティのいくつかの重要なオプションの簡単な説明です。
-Xフラグ
(HTTP)HTTPサーバーと通信するときに使用されるカスタム要求メソッドを指定します。 指定されたリクエストは、別の方法で使用されるメソッド(デフォルトはGET)の代わりに使用されます。 詳細と説明については、HTTP 1.1仕様をお読みください。
(FTP)FTPでファイルリストを実行するときに、LISTの代わりに使用するカスタムFTPコマンドを指定します。
-H
(HTTP)Webページを取得するときに追加のヘッダーが使用されます。 cURLが使用する内部ヘッダーの1つと同じ名前のカスタムヘッダーを追加すると、内部ヘッダーの代わりに外部で設定されたヘッダーが使用されることに注意してください。 これにより、cURLが通常行うよりもトリッキーな作業を行うことができます。 自分が何をしているかを完全に知らずに、内部で設定されたヘッダーを交換しないでください。 内部ヘッダーをコロンの右側にあるコンテンツのないヘッダーに置き換えると、そのヘッダーが表示されなくなります。
cURLは、追加/置換した各ヘッダーが適切な行末マーカーで送信されることを保証します。 ヘッダーの内容の一部としてそれを追加したり、無秩序なものに改行や改行を追加したりしないでください。
-A/ - user-agentおよび-e/ - refererオプションも参照してください。
このオプションを複数回使用して、複数のヘッダーを追加/置換/削除できます。
-dフラグ
cURLのこのフラグを使用すると、ユーザーがフォームに入力して送信したかのように、データをHTTP POSTリクエストとともにサーバーに送信できます。
例
以下に示すように、Webサイトがあり、ログインするか、cURLユーティリティの-dフラグを使用してWebサイトにデータを送信するとします。
curl -X PUT http://mywebsite.com/loginl -d userid=001 -d password=finddevguides
*"userid = 001&password = finddevguides"* のような投稿チャンクを送信します。 同様に、-dフラグを使用してドキュメント(JSON)を送信することもできます。
-oフラグ
このフラグを使用して、cURLは要求の出力をファイルに書き込みます。
例
次の例は、cURLユーティリティの -o フラグの使用を示しています。
$ curl -o examplel www.finddevguides.com/index
% 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
これにより、finddevguides.comのホームページのソースコードが取得され、example.comという名前のファイルが作成され、出力がexamplelという名前のファイルに保存されます。
以下は examplel のスナップショットです。
-O
このフラグは –o に似ています。唯一の違いは、このフラグとの違いです。リクエストされたURLと同じ名前の新しいファイルが作成され、リクエストされたURLのソースコードがコピーされます。
例
次の例は、cURLユーティリティの -O フラグの使用を示しています。
$ curl -O www.finddevguides.com/index
% 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
インデックスという名前の新しいファイルを作成し、finddevguides.comのインデックスページのソースコードをその中に保存します。
こんにちは、CouchDB
インストールされたCouchDBインスタンスにGETリクエストを送信することにより、CouchDBのホームページにアクセスできます。 まず、CouchDBがLinux環境にインストールされ、正常に実行されていることを確認してから、次の構文を使用してget要求をCouchDBインスタンスに送信します。
curl http://127.0.0.1:5984/
これにより、CouchDBがバージョン番号、ベンダー名、ソフトウェアのバージョンなどの詳細を指定する、以下に示すJSONドキュメントが提供されます。
$ 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"
}
}
すべてのデータベースのリスト
文字列 "_ all_dbs string" とともにget要求を送信することにより、作成されたすべてのデータベースのリストを取得できます。 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" ]
データベースを作成する
あなたは、次の構文を使用してPUTヘッダーを持つcURLを使用してCouchDBでデータベースを作成することができます-
$ 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の組み込みのWebベースの管理インターフェイスです。 CouchDBとやり取りできるシンプルなグラフィカルインターフェイスを提供します。 これは単純なインターフェースであり、すべてのCouchDB機能へのフルアクセスを提供します。 以下は、それらの機能のリストです-
データベース-
- データベースを作成します。
- データベースを破壊します。
ドキュメント-
- ドキュメントを作成します。
- ドキュメントを更新します。
- ドキュメントを編集します。
- ドキュメントを削除します。
布団を開始
CouchDBが実行されていることを確認してから、ブラウザで次のURLを開きます-
http://127.0.0.1:5984/_utils/
このURLを開くと、以下に示すようにFutonホームページが表示されます-
- このページの左側で、CouchDBの現在のすべてのデータベースのリストを確認できます。 この図では、システム定義のデータベース _replicator および _user とともに、 my_database という名前のデータベースがあります。
- 右側には、次を見ることができます-
- ツール-このセクションには、CouchDBを構成する*構成*、レプリケーションを実行する*レプリケーター*、およびCouchDBのステータスとCouchDBで行われた最近の変更を確認する*ステータス*があります。
- ドキュメント-このセクションには、CouchDBの最新バージョンの完全なドキュメントが含まれています。
- 診断-この下で、CouchDBのインストールを確認できます。
- 最近のデータベース-この下では、最近追加されたデータベースの名前を見つけることができます。