digitsu
How do I connect to a Phoenix API server from a Elixir client?
Hi I’m trying to do something simple, which is just to connect to a phoenix server backend via its API pipeline (JSON) using not a js client, but a separate elixir process. I understand that if this process is going to talk websockets/phoenix channels, there is the PhoenixClient library that can be used, but I just need to talk standard HTTP, sending across JSON messages through POST/GET etc.
Is there a library that can do this? I think all I need to get is a handle on the connection, and I think the standard phoenix library should be able to do this but the only examples I can see of this is wrapped up in the PhoenixConnTest module, and I want to do this outside the context of a test.
Thanks! ![]()
Most Liked
beepbeepbopbop
So as far as I can tell, you’re basically trying to call an endpoint in an existing Elixir application? If so, there’s a number of HTTP clients that you can utilise:
:httpcis provided by the Erlang runtime. While it does work, there’s a lot of Erlang idioms that you’ll need to use.hackneyis a pretty common HTTP client written for Erlang. It’s a fairly used alternative tohttpc.mintis probably the most recent HTTP client on the block, written in Elixir.
However, I would make the distinction between the HTTP client library as wrappers that use said client libraries/abstractions. One such example is finch (GitHub - sneako/finch: Elixir HTTP client, focused on performance · GitHub) which utilises mint which is focused on performance.
If you want something even more generalised, Tesla (GitHub - elixir-tesla/tesla: The flexible HTTP client library for Elixir, with support for middleware and multiple adapters. · GitHub) can be used with various HTTP clients (finch, hackney, httpc), that includes abstractions such as middleware and a more module definition approach to client design.
Keep in mind that these assume “normal” HTTP requests. If you need something to work with Phoenix channels, I recall an Elixir library for that, but it escapes me at the moment.
Popular in Questions
Other popular 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
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









