Httpie: рдкрд╛рдпрдерди рдПрдкреАрдЖрдИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 8 рдЬрдире░ 2017  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: httpie/httpie

HTTP рдкреНрд░реЙрдореНрдкреНрдЯ* рд╡рд╛рд╕реНрддрд╡рд┐рдХ HTTP рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП httpie.core.main() рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ HTTP рдкреНрд░реЙрдореНрдкреНрдЯ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ, рдЬреИрд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рдХреБрдХреАрдЬрд╝ рд╕реЗрдЯ рдХрд░рдирд╛, рд╣рдореЗрдВ рдкрд╛рдЗрдерди рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ ( requests.Response , рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП) рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди httpie.core.main() рдРрд╕рд╛ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рддреЛ HTTP рд╢реАрдШреНрд░ "рд╣реИрдХ" рдХрд╛ HTTPie рд╕рд╛рде sys.settrace() рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП httpie.core.get_response() рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐:

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

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ HTTPie рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

* рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ: HTTP рдкреНрд░реЙрдореНрдкреНрдЯ рдПрдХ рд░реИрдкрд░ рд╣реИ рдЬреЛ HTTPie рдХрд╛ рдПрдХ рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

HTTPony HTTPie рдХреЗ API рдХреЛ рдмрд╣реБрдд рдХрдо рдЫреВрддрд╛ рд╣реИред рдпрд╣ рддрдХ рд╕реАрдорд┐рдд рд╣реИ:

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 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЛрдиреЛрдВ рд▓реМрдЯрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рд╢рд╛рдпрдж рдкрд╛рд░реНрд╕ рддрд░реНрдХ рднреА рд╡рд╛рдкрд╕ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

@eliangcs рдореИрдВ рдПрдХ рдмрдбрд╝рд╛ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рддреГрддреАрдп-рдкрдХреНрд╖ рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд┐рд░ рдФрд░ рдкреНрд░рд▓реЗрдЦрд┐рдд api.py рдореЙрдбреНрдпреВрд▓ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЖрдВрддрд░рд┐рдХ рдХреЛ рд╕реНрдкрд░реНрд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╕рдордп рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдкреНрд░рд╡реГрддреНрддрд┐ рд░рдЦрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдЖрдзрд╛рд░ рдкрд░ рдХреБрдЫ рдлреНрд▓реИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ http-prompt рд╡рд░реНрддрдорд╛рди рдореЗрдВ HTTPie рд╕реЗ рдХреНрдпрд╛ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ? рдЖрд░реНрдЧ рдХреЗ рд╕рд╛рде рдЦрд╛рд▓реА рддрд░реАрдХреЗ, рдФрд░ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдбреЙрдХрд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдВрдЧреЗред рдПрдХ рдЕрдЪреНрдЫрд╛ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рд╕рд┐рд░реНрдл рд╕рднреА рдЖрдпрд╛рддреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рд╣реЛрдЧрд╛ http-prompt рдЬрд░реВрд░рдд рд╣реИред

// cc @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 рдХреЗ API рдХреЛ рдмрд╣реБрдд рдХрдо рдЫреВрддрд╛ рд╣реИред рдпрд╣ рддрдХ рд╕реАрдорд┐рдд рд╣реИ:

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 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

k0pernikus picture k0pernikus  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tonsV2 picture tonsV2  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

maciej picture maciej  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sensibleish picture sensibleish  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

poskadesign picture poskadesign  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ