Search:

Search all manuals
Search this manual
Manual
Couchbase Server マニュアル 2.0
Community Wiki and Resources
Couchbase Server 2.0をダウンロード
Couchbase 開発者ガイド 2.0
クライアントライブラリ
Couchbase Server フォーラム
Additional Resources
Community Wiki
Community Forums
Couchbase SDKs
Parent Section
9.7 デザインドキュメントのREST API
Chapter Sections
Chapters

9.7.1. デザインドキュメントの保存

1つ以上のビューを持つ新しいデザインドキュメントを作成するには、REST APIを使用して、ビューの定義と、対応するデザインドキュメントを同時にアップロードします。このコマンドの形式は、以下の表に示されています:

メソッドPUT /bucket/_design/[デザインドキュメント]
リクエストデータデザインドキュメント定義(JSON)
レスポンスデータ成功したかどうかと、格納されたデザインドキュメントID
認証情報の要否任意
リターンコード 
201ドキュメントの作成が成功しました
401リクエストしたアイテムが指定した認証情報では利用できないか、認証情報が指定されていません

注記

REST APIを介してデザインドキュメントを作成するとき、開発(dev)のビューを作成することをお勧めします。開発のデザインドキュメントとビューを最初に作成し、そのあとでデザインドキュメントで構成されたビューの出力を確認することをお勧めします。devのビューを作成するには、デザインドキュメントの名前にdev_接頭辞を明示的に使用する必要があります。

たとえば、 curlを使用して、次のコマンドのようにデザインドキュメントの内容に(byfield.ddocという名前の)テキストファイルを作成することによって、デザインドキュメント、byfieldを作成できます:

shell> curl -X PUT -H 'Content-Type: application/json' \
   http://user:password@localhost:8092/sales/_design/dev_byfield' \
   -d @byfield.ddoc

上記の例では:

成功した場合、HTTPレスポンスコードは201(作成完了)になります。返されるJSONには、フィールドokと、作成されたデザインドキュメントのIDが含まれます。

JSON
{
    "ok":true,
    "id":"_design/dev_byfield"
}

システムで作成または更新される前にデザインドキュメントは検証されます。この妥当性検証は、有効なJavascriptのためと、有効なビルトインreduce関数の利用ために実施されます。妥当性検証の失敗はエラーとして報告されます。

エラーのイベントで返されるJSONには、フィールドerrorに短い説明、およびフィールドreasonにより詳細な問題の説明が含まれます。

デザインドキュメントのフォーマットは、デザインドキュメントで定義されたすべてのビューが含まれ、各名前付きビューでmapとreduce関数両方を組み込みます。例:

JSON
{"views":{"byloc":{"map":"function (doc, meta) {\n  if (meta.type == \"json\") {\n    emit(doc.city, doc.sales);\n  } else {\n    emit([\"blob\"]);\n  }\n}"}}}

整形すると、デザインドキュメントはこのようになります:

JSON
{
   "views" : {
      "byloc" : {
         "map" : "function (doc, meta) {\n  if (meta.type == \"json\") {\n    emit(doc.city, doc.sales);\n  } else {\n    emit([\"blob\"]);\n  }\n}"
      }
   }
}

トップレベルviewsフィールドは、ひとつ以上のビュー定義(この例では、bylocビュー)、および各ビューでは対応するmap()関数が一覧表示されます。