Httpie: Possibilité de filtrer JSON ou XML

Créé le 5 janv. 2015  ·  5Commentaires  ·  Source: httpie/httpie

Parfois, les réponses de l'API contiennent beaucoup de données.

Étant donné un point de terminaison qui renvoie JSON ou XML, ce serait cool de pouvoir faire quelque chose comme

http http://myapi.endpoint/ -q "abc/xyz"

et ne voir que le sous-arbre "abc/xyz" de la réponse.

Commentaire le plus utile

Je crains que cela dépasse légèrement le cadre de ce que httpie devrait prendre en charge. jq pour JSON est excellent et s'intègre bien avec HTTPie via des tuyaux. Je prévois d'ajouter quelques exemples à la documentation, mais en voici un simple pour le moment :

$ 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"

Et d'autres outils existent pour interroger différents formats.

Tous les 5 commentaires

+1, ce serait génial

Il existe des outils externes pour cela :
- jq pour JSON http://stedolan.github.io/jq/
- xmlstarlet et autres pour XML http://stackoverflow.com/a/15461774
Pourquoi ne pas simplement les utiliser ?

@corpix Merci pour les liens ; n'était pas au courant d'eux.

Il y a des avantages et des inconvénients à un outil intégré. Je suis sur la clôture à ce sujet; Je laisserai aux développeurs le soin de clore ce problème s'ils le souhaitent.

Je crains que cela dépasse légèrement le cadre de ce que httpie devrait prendre en charge. jq pour JSON est excellent et s'intègre bien avec HTTPie via des tuyaux. Je prévois d'ajouter quelques exemples à la documentation, mais en voici un simple pour le moment :

$ 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"

Et d'autres outils existent pour interroger différents formats.

Voici un autre exemple d'utilisation de jq ; celui-ci utilise également httpie-unixsocket pour communiquer avec Docker sur /var/run/docker.sock :

$ 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
}
Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

loretoparisi picture loretoparisi  ·  6Commentaires

rashthedude picture rashthedude  ·  3Commentaires

k0pernikus picture k0pernikus  ·  3Commentaires

victorhooi picture victorhooi  ·  4Commentaires

pyvotal-cguers picture pyvotal-cguers  ·  5Commentaires