2013-04-04 9 views
5

Gibt es eine Möglichkeit, die JSON-Ausgabe von curl Befehle Pretty standardmäßig gedruckt werden? Das heißt, ohne Angabe der Option ?pretty=true für die Curl-URL, ist es möglich, die Ausgabe jedes Mal schön gedruckt anzuzeigen?Elastische Suche: Make pretty Format als Standard

+1

Darf ich vorschlagen, einen Blick auf die [Elayshell] (https://github.com/jav Anna/Elasticshell)? Das ist viel mehr JSON freundlich als Curl und zeigt nur schön verschönerte JSON-Objekte. [Dieser Artikel] (http://blog.trifork.com/2013/03/06/introducing-the-elasasticshell/) sollte auch nützlich sein. – javanna

+0

Markierte es. Das Lernen der elastischen Suche selbst, also vor der Verwendung der elastischen Hülle, wird versuchen, sich mit der elastischen Suche vertraut zu machen. – callmekatootie

Antwort

11

konnte ich dies erreichen, indem Sie einen neuen Alias ​​zu meinem .bashrc Hinzufügen (oder .bash_profile auf einem Mac):

alias pp='python -mjson.tool' 

Dann, nach der Bashrc/.bash_profile Konfiguration Nachladen eines neuen durch Öffnen Terminal oder durch

$ source ~/.bashrc 

Sie laufen Rohr curl Ausgang mit dem Alias ​​'PP' lassen sich wie folgt:

$ curl -XGET http://localhost:9200/_search | pp 

Quelle: http://ruslanspivak.com/2010/10/12/pretty-print-json-from-the-command-line/

2

In den meisten Fällen verwenden Sie REST API von anderen Produkten (JQuery, PHP, Perl, Ruby ...). Diese Frameworks müssen keinen schönen Input haben. Also, ich nehme an, dass in 99% der Anfragen, die Sie wollen langsam Ihre Anfragen durch hübsche Rendering JSON.

IMHO, Sie brauchen nur schön drucken, wenn Sie Debuggen oder im Dev-Modus.

Eine Option könnte sein, es als elasticsearch Eigenschaft in elasticsearch.yml Datei zu haben. Open an issue dafür?

+0

Ich verstehe jetzt, warum dies nicht als "Problem" vor oder als eine eingebaute Funktion ausgelöst wurde - wie Sie es sagen, es ist in anderen Produkten verwendet und man verwendet nicht direkt "Curl". Ich versuche tatsächlich, es zu lernen, bevor ich es in meiner Anwendung benutze, und wollte deshalb auf der Konsole selbst nachsehen, ob meine Suchanfrage korrekte Ergebnisse liefert oder nicht - es ist ein bisschen ärgerlich, es ständig anzugeben ... – callmekatootie

2

ElasticSearch hat keine solche permanente Einstellung und ich möchte solche nicht. Oft sehe ich, dass Entwickler vergessen, solche Einstellungen in der Produktion rückgängig zu machen, und dann wird die allgemeine Produktleistung beeinträchtigt. Ein ähnliches Beispiel ist das Aktivieren der DEBUG-Protokollierung, was ein sehr beliebter Performance-Killer ist.

Sie haben viele Werkzeuge Ihre Entwicklung zu erleichtern:

  • RestClient‎ Firefox-Plugin
  • [Elasticsearch Leitung] - ausgezeichnet ES Admin die auch ziemlich Formate Ihre Eingabe

Plus bereits erwähnt ElasticShell .

Aber wenn Sie wirklich wirklich wollen es in curl machen hier ist ein einfacher Trick, den ich gerade gemacht habe. Führen Sie dies in Ihrem Bash-Shell oder ein Skript:

Und Sie verwenden curl wie zuvor:

curl http://localhost:9200/ 

rückgängig zu machen:

unset -f curl 

Natürlich wäre es besser, die Funktion zu nennen wie ppcurl wenn Sie oben nicht mögen :)

Verwandte Themen