Httpie: JSONまたはXMLをフィルタリングする機能

作成日 2015年01月05日  ·  5コメント  ·  ソース: httpie/httpie

API応答に大量のデータが含まれる場合があります。

JSONまたはXMLを返すエンドポイントを考えると、次のようなことができるのはすばらしいことです。

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

応答の「abc / xyz」サブツリーのみが表示されます。

最も参考になるコメント

これはhttpieがサポートすべき範囲をわずかに超えているのではないかと思います。 JSONのjqは優れており、パイプを介してHTTPieとうまく統合されます。 ドキュメントにいくつかの例を追加する予定ですが、今のところ簡単な例を次に示します。

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

また、さまざまな形式をクエリするための他のツールがあります。

全てのコメント5件

+1、これは素晴らしいでしょう

これにはいくつかの外部ツールがあります。
--JSONのjqhttp //stedolan.github.io/jq/
--XML用のxmlstarletなどhttp://stackoverflow.com/a/15461774
単純に使ってみませんか?

@corpixリンクをありがとう。 それらに気づいていませんでした。

統合ツールには長所と短所があります。 私はこれについては危機に瀕しています。 必要に応じて、この問題を解決するのは開発者に任せます。

これはhttpieがサポートすべき範囲をわずかに超えているのではないかと思います。 JSONのjqは優れており、パイプを介してHTTPieとうまく統合されます。 ドキュメントにいくつかの例を追加する予定ですが、今のところ簡単な例を次に示します。

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

また、さまざまな形式をクエリするための他のツールがあります。

jqを使用する別の例をhttpie-unixsocketを使用して/var/run/docker.sockを介してDockerと通信します。

$ 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
}
このページは役に立ちましたか?
0 / 5 - 0 評価