egze

egze

Looking for a API Client library that deals with calling some endpoint, parsing the data and returning structs. I want to study what are some best practices how to structure them.

What are you favourite API client projects in terms of good architecture?

Showing Posts 1 to 6

pablodavila

pablodavila

You could start by reading the recent discussion about HTTP clients. There’s a few options but they all have different use cases.

I’ve personally used Peppermint mainly because it seemed simple enough and built on a fast client (Mint). It seems like it’s not very popular, so you might want to keep that in mind. I can’t comment much more since my use case was very basic.

egze

egze OP

Thanks. This looks like a HTTP Client. I’m looking for API clients that consume some service, like a Twitter client for example.

pablodavila

pablodavila

More often than not APIs use HTTP as their transport. If you are referring to an SDK (like the ones offered by Stripe, Twilio, etc.) you’d have to find either an official or an unofficial library for the service you want to use. For example, here’s a Twitter client I found after a quick Google search.

If there’s none available you can create your own library. Use any of the HTTP clients to get the data you need and wrap it in a function, maybe add some additional functionality for auth(z)/auth(n) if needed. That’s usually what the SDKs are doing in the background.

Is this what you are looking for? As another example, you can see that Stripe doesn’t offer an official client for Elixir but it can be accessed via curl, which is an HTTP client. (Although there are some unofficial libraries in the case of Stripe)

egze

egze OP

The motivation is to write my own library. I have written api clients before and know what goes into one, but recently was just thinking of ways how to organise such a library and looking for inspiration. So I’m looking for some open source projects where by looking at the code, I could say - wow, this library is very well written, has good separation of concerns, good testability, etc. To learn from the best :slight_smile:

pablodavila

pablodavila

Ah, I understand now. I’m sorry if I made any wrong assumptions.

I haven’t used a lot of clients but these are the ones I’ve heard good things about:

Hope these are useful as a starting point at the very least :smiley:

egze

egze OP

No worries. Thanks for the list!

— All posts loaded —

Where Next? Top

Trending in Questions Top

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
water
I’m aware of 2 such projects, are there others? git: GitHub - team-alembic/realworld: A fullstack Phoenix LiveView application with back...
New
itzmidinesh
Hi all, I’m working on a Phoenix project where I need to make external HTTP requests and I’m trying to choose between Req and HTTPoison....
New
pragdave
How do I tell Hologram not to escape HTML when substituting into templates? {Textile.render(@product.long_description)} escapes the HTM...
New
rlipscombe
I’d like to create a file with 600 permissions (rw-------), but there’s a race condition if I create it and then change the permissions. ...
New
leoschweizer
Hi, we run different LLM models across a cluster, with each node loading a configurable subset. Model-specific queues let nodes consume ...
New
rlipscombe
When I use Mix.install with a git dependency, using git@github.com:... how do I change the SSH identity used? I’ve got two Github accoun...
New

Other Trending Topics Top

dominicletz
Hey there, I haven’t seen a list of useful Elixir specific skills for the popular AI tools yet so I’m starting one here with my first. ...
New
raa-ziq
Hi everyone :waving_hand: I wanted to share something I’ve been building — NowBlind, a random chat app designed to help people discover ...
New
mudasobwa
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
OndrejValenta
(I just needed to vent somewhere and LinkedIn is full of hope, or hype, I’m not sure which exactly) AI dream has many faces, but general...
New
kip
Localize is the next generation localisation library for Elixir. Think of it as ex_cldr version 3.0. The first version will be released ...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews