2012-04-29 5 views
6

私はElasticSearchを使って私の最初の措置をしています。現在、コマンドラインからcurlを使って作業していることをテストしています。しかし、テキストエディタにすべてを入力してコンソールに貼り付ける必要があり(コンソールではタブの書式設定なし)、jsonの出力はフォーマットされていないので、ちょっと面倒です。コンソールからjsonとカールを操作するためのツール

jsonデータを扱う多くのSQLコンソールに相当するものがあるかどうか、json rest Webサービスで簡単にテストして遊ぶことができるかどうか疑問に思っていました。

この種類のタスクにはどのツールを使用しますか?

答えて

6

まず、取得したjson出力がフォーマットされていない場合は、いずれのURLにも?pretty=1を追加してください。結果はもっと良いでしょう。もう一つの選択肢は、Python 2.6+をお持ちの場合、出力をpython -m json.toolにパイプすることです。シェル関数に保存して、単にjsonを出力するコマンドの後に| jと入力するだけで、後者のオプションが好きです。非常に短く一般的です。

curlコマンドを発行するには、いくつかのオプションがあります。最も一般的な解決策は、コマンド全体を使ってシェルスクリプトを作成することです。例:

curl -s localhost:9200/foo/_search -d' 
    {"query": 
    {"query_string": 
     {"query":"foo*"}}}' | python -m json.tool 

これをシェルプロンプトで貼り付けるのではなく、ファイルに保存します。その後、ソースを微調整し、必要なだけ頻繁に実行します。

% sh query 

これには、Emacsを使用する方法があります。バッファの領域にcurlを実行し、結果を操作します。shell-command-on-regionまたはが良い選択です。上記のスクリプトでは、シェルに切り替える代わりにM-| sh RETを発行することができます。 Vimでは、同様のことをすることができます。

私はこれをチェックしていませんが、多くの人がelasticsearch-headを好むようです。これはクエリを発行し、構造化された結果を与えるUIです。 http://mobz.github.com/elasticsearch-head/

更新:私は最近json_ppその関数の同様のPythonのjson.toolに呼ばれる便利なコマンドラインユーティリティでPerlのJSONモジュールの出荷ことに気づきました。 JSON::XSをインストールする場合は、(高速の)json_xsビンもあります。

+0

非常に良い答え、多くの有用なヒント、私はすでに頭を使用しており、それは素晴らしいツールです – opensas

3

私は

をフィルタリングのように、JSONで動作するようにいくつかのオプションを持っている

http://stedolan.github.com/jq/tutorial/

curl ideasba.org/api/ideas/1 | jq . 

    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 525 100 525 0  0 990  0 --:--:-- --:--:-- --:--:-- 2488 
{ 
    "created": "2012-09-22T05:20:00Z", 
    "author": { 
    "nickname": "opensas", 
    "created": "2012-09-22T01:40:00Z", 
    "id": 2, 
... 

かなり便利そうです別のツールを見つけました

curl ideasba.org/api/ideas/1 | jq .votes 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 525 100 525 0  0 809  0 --:--:-- --:--:-- --:--:-- 2441 
{ 
    "neg": 1, 
    "pos": 8 
} 
0

Sense plugin for Chromeを強くお勧めします。インテリジェントなオートコンプリート、JSONの構文チェックと整理、そして構文が強調表示された出力を提供します。それは積極的に開発されており、会談の要請を示すために私が選択するツールです。

+0

これは、リモートコンソールベースではありません。 – cweiske

関連する問題