Httpie: Python API

Dibuat pada 8 Jan 2017  ·  5Komentar  ·  Sumber: httpie/httpie

HTTP Prompt* sangat bergantung pada fungsi httpie.core.main() untuk mengirim permintaan HTTP yang sebenarnya. Beberapa fitur HTTP Prompt, seperti menyetel cookie yang masuk, mengharuskan kita mengakses objek respons ( requests.Response , untuk lebih spesifik) dengan Python, tetapi httpie.core.main() tidak menyediakan API semacam itu. Jadi HTTP Prompt "meretas" HTTPie dengan sys.settrace() untuk mendapatkan objek respons yang dikembalikan oleh httpie.core.get_response() , seperti yang ditunjukkan oleh kode berikut:

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

Saya ingin tahu apakah HTTPie dapat menawarkan API bagi pengembang untuk mengakses objek respons internal dengan lebih mudah.

* Bagi yang belum tahu: HTTP Prompt adalah pembungkus yang menyediakan antarmuka interaktif HTTPie.

Komentar yang paling membantu

HTTPony sangat sedikit menyentuh API HTTPie. Ini terbatas pada:

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

Inti dari apa yang dilakukan adalah meneruskan requests.models.Request ke streams.build_output_stream dan memanggil streams.write_stream . Semua itu terjadi di https://github.com/mblayman/httpony/blob/master/httpony/application.py.

Semua 5 komentar

Ya, masuk akal — saya akan memeriksanya. main() dapat mengembalikan kode status keluar dan respons HTTP akhir. Dan mungkin parse args juga akan berguna untuk dikembalikan juga.

@eliangcs Saya melakukan refactoring yang lebih besar dan saya pikir akan lebih baik untuk memiliki modul api.py stabil dan terdokumentasi untuk digunakan oleh alat pihak ketiga, sehingga mereka tidak perlu menyentuh internal yang memiliki kecenderungan untuk berubah dari waktu ke waktu.

Bisakah Anda mem-flash sesuatu berdasarkan http-prompt saat ini diimpor dari HTTPie? Metode kosong dengan argumen, dan beberapa dokumen singkat dengan nilai kembalian sudah cukup. Titik awal yang baik adalah dengan mendaftar semua kebutuhan impor http-prompt .

// cc @mblayman

@jkbrzt saya melakukan grep atas basis kode saya. Inilah yang saya temukan:

# 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 sangat sedikit menyentuh API HTTPie. Ini terbatas pada:

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

Inti dari apa yang dilakukan adalah meneruskan requests.models.Request ke streams.build_output_stream dan memanggil streams.write_stream . Semua itu terjadi di https://github.com/mblayman/httpony/blob/master/httpony/application.py.

Terima kasih banyak. Saya akan membahasnya dan meresmikan hal-hal yang masuk akal. Kemudian buat beberapa pembungkus di httpie.api — atau cukup buat objek tersebut dapat diimpor dari modul untuk memulai.

Ini akan membuat pengguna eksplisit dapat/mungkin bergantung padanya dan memberikan jaminan stabilitas dibandingkan dengan internal. Perubahan pada fungsi httpie.api -exported juga harus tercakup dalam log perubahan.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

poskadesign picture poskadesign  ·  7Komentar

mattotodd picture mattotodd  ·  3Komentar

filipesperandio picture filipesperandio  ·  3Komentar

cunde picture cunde  ·  7Komentar

loretoparisi picture loretoparisi  ·  6Komentar