2013-04-04 15 views
5

Czy istnieje sposób, aby domyślnie wydać komendy JSON z curl Pretty drukowane? Oznacza to, że bez określenia opcji ?pretty=true dla adresu URL curl, czy możliwe jest wyświetlenie wydruku, które jest drukowane za każdym razem?Elastic Search: Ustaw ładny format jako domyślny

+1

Może zasugeruję, aby rzucić okiem na [elasticshell] (https://github.com/jav anna/elasticshell)? Jest o wiele bardziej przyjazny dla JSON niż curl i pokazuje tylko ładnie upiększone obiekty JSON. [Ten artykuł] (http://blog.trifork.com/2013/03/06/introducing-the-elasticshell/) również powinien być przydatny. – javanna

+0

Oznaczono gwiazdką. Obecnie, ucząc się samo przeszukiwania elastycznego, przed użyciem sprężystej skorupy, spróbuje uzyskać wygodę dzięki elastycznemu wyszukiwaniu. – callmekatootie

Odpowiedz

11

udało mi się tego dokonać poprzez dodanie nowego aliasu do mojego .bashrc (lub bash_profile na mac):

alias pp='python -mjson.tool' 

Następnie po przeładowywania/.bashrc konfigurację bash_profile otwierając nowy Terminal lub uruchamiając

$ source ~/.bashrc 

można rury curl wyjście do 'pP' alias następująco:

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

Źródło: http://ruslanspivak.com/2010/10/12/pretty-print-json-from-the-command-line/

2

W większości przypadków używa się REST API z innych produktów (JQuery, PHP, Perl, Ruby ...). Te frameworki nie muszą mieć ładnych danych wejściowych. Zakładam więc, że w 99% żądań nie chcesz zwolnić swoich żądań przez ładne renderowanie JSON.

IMHO, potrzebujesz tylko ładnego drukowania podczas debugowania lub w trybie deweloperskim.

Opcją może być posiadanie go jako właściwości elasticsearch w pliku elasticsearch.yml. Open an issue za to?

+0

Rozumiem teraz, dlaczego nie zostało to podniesione jako "problem" przed lub nie jest wbudowaną funkcjonalnością - jak to ujęłeś, jest używane w innych produktach i nie używa się bezpośrednio 'curl'. Próbuję się tego nauczyć przed użyciem go w mojej aplikacji i dlatego chciałem sprawdzić samą konsolę, jeśli moje zapytanie wyszukiwania zwróci poprawne wyniki lub nie - jest to trochę denerwujące, aby określać je cały czas ... – callmekatootie

2

ElasticSearch nie ma takich stałych ustawień i nie chcę takich. Dosyć często widzę, że programiści zapominają cofnąć takie ustawienia w produkcji, a następnie ogólna wydajność produktu ulega pogorszeniu. Podobnym przykładem jest pozostawienie włączonego rejestrowania DEBUG, które jest bardzo popularnym zabójcą wydajności.

Masz mnóstwo narzędzi, aby ułatwić swój rozwój:

  • RestClient‎ Firefox plugin
  • [ElasticSearch Głowa] - doskonała Administrator które ES nawet ładne formaty Twój wkład

Plus wcześniej wspomniano ElasticShell .

Jeśli jednak naprawdę chcesz zrobić to w curl, oto prosta sztuczka, którą właśnie zrobiłem. Uruchom ten w powłoce bash lub skrypt:

i używasz curl jak poprzednio:

curl http://localhost:9200/ 

Aby cofnąć:

unset -f curl 

Oczywiście lepiej byłoby nazwać funkcję jako ppcurl jeśli nie podoba ci się wyżej :)

Powiązane problemy