Manchmal enthalten API-Antworten viele Daten.
Bei einem Endpunkt, der JSON oder XML zurückgibt, wäre es cool, so etwas tun zu können
http http://myapi.endpoint/ -q "abc/xyz"
und nur den Unterbaum "abc/xyz" der Antwort sehen.
+1, das wäre toll
Dafür gibt es einige externe Tools:
- jq für JSON http://stedolan.github.io/jq/
- xmlstarlet und andere für XML http://stackoverflow.com/a/15461774
Warum verwenden Sie sie nicht einfach?
@corpix Danke für die Links; war sich ihrer nicht bewusst.
Ein integriertes Tool hat Vor- und Nachteile. Ich bin diesbezüglich am Zaun; Ich überlasse es den Entwicklern, dieses Problem zu schließen, wenn sie es wünschen.
Ich fürchte, dies geht etwas über den Rahmen dessen hinaus, was httpie unterstützen sollte. jq
für JSON ist hervorragend und lässt sich über Pipes gut in HTTPie integrieren. Ich habe vor, den Dokumenten einige Beispiele hinzuzufügen, aber hier ist vorerst ein einfaches:
$ http httpbin.org/get
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 398
Content-Type: application/json
Date: Wed, 07 Jan 2015 19:03:04 GMT
Server: gunicorn/18.0
Via: 1.1 vegur
{
"args": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Connect-Time": "1",
"Connection": "close",
"Host": "httpbin.org",
"Total-Route-Time": "1",
"User-Agent": "HTTPie/0.8.0",
"Via": "1.1 vegur",
"X-Request-Id": "2b2e03a0-0449-40f1-9027-73bfe9edf31f"
},
"url": "http://httpbin.org/get"
}
$ http httpbin.org/get | jq '.headers["User-Agent"]'
"HTTPie/0.8.0"
Und es gibt noch andere Tools zum Abfragen verschiedener Formate.
Hier ist ein weiteres Beispiel für die Verwendung von jq ; dieser verwendet zufällig auch httpie-unixsocket , um mit Docker über /var/run/docker.sock
zu kommunizieren:
$ http http+unix://%2Fvar%2Frun%2Fdocker.sock/info | jq .RegistryConfig
{
"InsecureRegistryCIDRs": [
"127.0.0.0/8"
],
"IndexConfigs": {
"docker.io": {
"Name": "docker.io",
"Mirrors": null,
"Secure": true,
"Official": true
}
},
"Mirrors": null
}
Hilfreichster Kommentar
Ich fürchte, dies geht etwas über den Rahmen dessen hinaus, was httpie unterstützen sollte.
jq
für JSON ist hervorragend und lässt sich über Pipes gut in HTTPie integrieren. Ich habe vor, den Dokumenten einige Beispiele hinzuzufügen, aber hier ist vorerst ein einfaches:Und es gibt noch andere Tools zum Abfragen verschiedener Formate.