Httpie: واجهة برمجة تطبيقات Python

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

موجه HTTP * يعتمد بشكل كبير على وظيفة httpie.core.main() لإرسال طلبات HTTP الفعلية. تتطلب بعض ميزات موجه HTTP ، مثل إعداد ملفات تعريف الارتباط الواردة ، منا الوصول إلى كائن الاستجابة ( requests.Response ، لنكون أكثر تحديدًا) في Python ، لكن httpie.core.main() لا يوفر مثل هذا API. لذا قام HTTP Prompt "hacks" HTTPie باستخدام sys.settrace() للحصول على كائن الاستجابة الذي تم إرجاعه بواسطة httpie.core.get_response() ، كما يوضح الكود التالي:

https://github.com/eliangcs/http-prompt/blob/cbd092299/http_prompt/execution.py#L430

أتساءل عما إذا كان بإمكان HTTPie تقديم واجهة برمجة تطبيقات للمطورين للوصول إلى كائن الاستجابة الداخلية بشكل أسهل.

* بالنسبة لأولئك الذين لم يعرفوا بالفعل: HTTP Prompt عبارة عن غلاف يوفر واجهة تفاعلية لـ HTTPie.

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

تلامس HTTPony القليل جدًا من واجهات برمجة تطبيقات HTTPie. يقتصر على:

from httpie.cli import parser
from httpie.context import Environment
from httpie.output import streams

جوهر ما يتم فعله هو تمرير requests.models.Request إلى streams.build_output_stream واستدعاء streams.write_stream . كل ما يحدث في https://github.com/mblayman/httpony/blob/master/httpony/application.py.

ال 5 كومينتر

نعم ، هذا منطقي - سأبحث في هذا. main() كلاً من كود حالة الخروج واستجابة HTTP النهائية. وربما يكون من المفيد أيضًا إرجاع args التحليل.

eliangcs أنا أقوم api.py مستقرة وموثقة لاستخدامها بواسطة أدوات الطرف الثالث ، حتى لا يضطروا إلى لمس الأجزاء الداخلية التي تميل إلى التغيير بمرور الوقت.

هل يمكنك عرض شيء ما بناءً على ما يستورده http-prompt حاليًا من HTTPie؟ ستكون الطرق الفارغة باستخدام args ، وبعض السلاسل المختصرة ذات القيم المرتجعة كافية. ستكون نقطة البداية الجيدة هي مجرد سرد كافة احتياجات الواردات http-prompt .

// سي سيmblayman

jkbrzt قمت بعمل grep على قاعدة الكود الخاصة بي. هذا ما وجدته:

# http_prompt/cli.py
from httpie.plugins import FormatterPlugin  # just to avoid cyclic import, not really used
from httpie.output.formatters.colors import Solarized256Style  # to support solarized theme

# http_prompt/execution.py
from httpie.context import Environment  # to construct a custom Environment and pass it to httpie_main
from httpie.core import main as httpie_main  # to generate output and the response object

تلامس HTTPony القليل جدًا من واجهات برمجة تطبيقات HTTPie. يقتصر على:

from httpie.cli import parser
from httpie.context import Environment
from httpie.output import streams

جوهر ما يتم فعله هو تمرير requests.models.Request إلى streams.build_output_stream واستدعاء streams.write_stream . كل ما يحدث في https://github.com/mblayman/httpony/blob/master/httpony/application.py.

عظيم شكرا. سأخوض في الأمر وأضفى الطابع الرسمي على تلك الأشياء حيث يكون ذلك منطقيًا. ثم اصنع بعض الأغلفة في httpie.api - أو ببساطة اجعل هذه الكائنات قابلة للاستيراد من الوحدة لتبدأ بها.

هذا سيجعل المستخدمين يمكنهم / قد يعتمدون عليه بشكل صريح ويوفر بعض الضمانات للاستقرار مقارنة بالأجزاء الداخلية. يجب أيضًا تغطية التغييرات التي تم إجراؤها على الوظيفة المصدرة httpie.api في سجل التغييرات.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

loretoparisi picture loretoparisi  ·  6تعليقات

Govinda-Fichtner picture Govinda-Fichtner  ·  6تعليقات

victorhooi picture victorhooi  ·  4تعليقات

rshurts picture rshurts  ·  5تعليقات

rashthedude picture rashthedude  ·  3تعليقات