I’m giving my first steps with ElasticSearch and to test things I’m currently working with curl from the command line. However it’s kind of annoying because I have to type everything on a text editor and paste in the console (no tab formatting in the console), and the json output you get is not formatted.
So I was wondering if there’s some equivalente of the many sql consoles for working with json data, to make it easier to test and play around with json rest web services.
What tools do you use for this kind of tasks?
First of all, if the json output you get isn’t formatted, append
?pretty=1to any url. The result will be much nicer. Another option is to pipe the output topython -m json.toolif you have Python 2.6+. I like the latter option because I have it saved to a shell function and can simply type| jafter any command that outputs json. Much shorter and generic.For issuing curl commands there are a couple of options. The most universal solution is to create a shell script with the whole command. For example:
Rather than pasting that at a shell prompt, save it in a file. Then just tweak the source and run it as often as you need.
A variation on this is to use Emacs. I use it to run
curlon regions of buffers, manipulate the result, etc.shell-command-on-regionorM-|is a good choice there. So for the above script, I can issueM-| sh RETinstead of switching to a shell. Vim allows you to do something similar.I haven’t checked this one out, but a lot of people seem to like elasticsearch-head. It’s a UI that will issue queries and give you structured results. http://mobz.github.com/elasticsearch-head/
Update: I recently noticed that Perl’s JSON module ships with a handy command-line utility called
json_ppthat function’s similarly to Python’sjson.tool. If you installJSON::XSthere’s also a (faster)json_xsbin.