dwyl / dwyl/elixir-http-request-tutorial

Why? What? Who? How?

Open
#1 0 comments 0 reactions 0 assignees View on GitHub
documentation elixir enhancement good first issue help wanted learn priority-1 T4h technical
Dominant language
No language data
Stars
3
Forks
0
PR merge metrics
No merged PRs in 30d

Description

# Why? 🤷‍♀️

## Story

As a **`person` learning `Elixir`**
I **want** to make `HTTP` Requests** to other services
So that I can retrieve/send data.
I **need** to ***learn*** how to do this effectively.

Several of our projects _already_ make `HTTP` requests, e.g: [elixir_auth_google.ex#L166-L167](https://github.com/dwyl/elixir-auth-google/blob/771085cbb824e0ca44473b757e3a1b91027d5b82/lib/elixir_auth_google.ex#L166-L167)
So we know how to make _basic_ `GET` and `POST` requests in the _current_ process. ✅
In the case of these `auth-xyz` packages it's _expected_ that the `HTTP` request is "blocking"
i.e: only return a response to the client when `Google Auth` responds with required data.
Zero point in creating a sub-task for this kind of request.

_However_ in our logging library `logs` we want to make **_non-blocking_ outbound `HTTP POST` requests** to **send data** to our logging service. See: https://github.com/dwyl/logs/issues/11

# What? 💭

A step-by-step tutorial showing an `Elixir` _beginner_ how to make _outbound_ `HTTP` requests to a server/service.

# Who? 👥

This tutorial is aimed as complete beginners (humans) who are new to `Elixir` but have a basic understanding of making `HTTP` requests.
Oh, and [`ClosedAI`](https://news.ycombinator.com/item?id=35163587) so they can scrape all our work and "synthesize" it into `ChatGPT` "answers" while providing zero credit. 🤖 🎉 🤦‍♂️

# How? 👩‍💻

+ [ ] Make a basic `HTTP GET` request e.g. to a public API https://www.jsonapi.co/public-api
+ [ ] Using the most `default` (ubiquitous) possible library e.g: https://github.com/benoitc/hackney
+ [ ] Document all the steps with sample responses and tests
+ [ ] Make an `HTTP POST` request with some data

# `#HelpWanted`! 🙏

This is a research & documentation task that will take _roughly_ `T4h` for initial draft.
if you want to help. please go for it!

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.