Httpie: القدرة على تصفية JSON أو XML

تم إنشاؤها على ٥ يناير ٢٠١٥  ·  5تعليقات  ·  مصدر: httpie/httpie

تحتوي استجابات API أحيانًا على الكثير من البيانات.

بالنظر إلى نقطة نهاية تقوم بإرجاع JSON أو XML ، سيكون من الرائع أن تكون قادرًا على القيام بشيء مثل

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

واطلع فقط على الشجرة الفرعية "abc / xyz" للاستجابة.

التعليق الأكثر فائدة

أخشى أن يكون هذا خارج نطاق ما يجب أن يدعمه httpie. jq لـ JSON ممتاز ويتكامل بشكل جيد مع 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 ، سيكون هذا رائعًا

هناك بعض الأدوات الخارجية لهذا:
- jq لـ JSON http://stedolan.github.io/jq/
- xmlstarlet وآخرون لـ XML http://stackoverflow.com/a/15461774
لماذا لا نستخدمهم ببساطة؟

corpix شكرا على الروابط ؛ لم يكن على علم بهم.

هناك إيجابيات وسلبيات لأداة متكاملة. أنا على الحياد بشأن هذا ؛ سأترك الأمر للمطورين لإغلاق هذه المشكلة إذا رغبوا في ذلك.

أخشى أن يكون هذا خارج نطاق ما يجب أن يدعمه httpie. jq لـ JSON ممتاز ويتكامل بشكل جيد مع 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 للتواصل مع Docker عبر /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
}
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات