fidr
Peppermint - Easy to use process-less HTTP client build on Mint
I build an easy-to-use process-less HTTP client build on Mint. It should cover the basic needs, without needing to deep-dive into Mint itself.
Some examples:
GET
{:ok, %{status: 200, headers: headers, body: body}} =
Peppermint.get("http://httpbin.org/get?foo=bar")
POST
{:ok, %{status: 200, headers: headers, body: body}} =
Peppermint.post("http://httpbin.org/post", params: %{foo: "bar"})
POST JSON
{:ok, %{status: 200, headers: headers, body: body}} =
Peppermint.post("http://httpbin.org/post",
headers: [{"Content-Type", "application/json"}],
body: Jason.encode!(%{foo: "bar"})
)
Check the docs for more info.
I’m open to suggestions and feature requests, although I do try to keep it simple.
Let me know what you think!
First Post!
lalo2302
Amazing and simple. Thanks for contributing!
Maybe a noob question. But why would I prefer a pool-less library rather than a process based like HTTPoison?
The only one I can think of is for not blocking requests.
Most Liked
fidr
Not a noob question at all. I find that I don’t need a pool for most of my use cases. If I do need one, I’d rather handle it myself.
A pool helps when you need to do multiple subsequent requests to the same host. You could spawn a new process for each request, but then you might overload the target with too many connections. A pool will limit the amount of connections to a single host and reuse connections to optimise throughput.
HTTPoison / hackney is actually pretty nice. It will keep a single connection open and re-use it for next requests. I just prefer Mint over hackney because of stability and correct SSL handling.
kodepett
Awesome library, I find myself making a one off request to an upstream server, most of the http clients maintained a connection pool to the server after the initial request which was unnecessary in this context.
Mint was too low level, I just stumbled across this library.
One reason to prefer a process-less over a process base will be the overhead of copying the response.
Thank you for the great work.
Trending in Announcing
Other Trending Topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #elixirconf-us
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex









