14 July 2010

I have had a frustrating time creating views in CouchDB using curl. Executing following command I would get

$ curl -s -X PUT -H "text/plain;charset=utf-8" -d cronview.json http://localhost:5984/cronologger/_design/cronview
{"error":"bad_request","reason":"invalid UTF-8 JSON"}

I checked and rechecked JSON, used the same JSON using CouchDB’s Futon to no avail. Finally I found the answer here


The -d option of curl expects the actual data as the argument!

If you want to provide the data in a file, you need to prefix it with @:

<code>curl -X PUT -d @keys.json  $CDB/_design/id