-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbasic.exs
More file actions
118 lines (94 loc) · 2.89 KB
/
basic.exs
File metadata and controls
118 lines (94 loc) · 2.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#!/usr/bin/env elixir
# Basic HTTP requests example
Mix.install([
{:flowfull, path: ".."}
])
defmodule BasicExample do
def run do
# Create a client
client = Flowfull.new("https://api.example.com")
IO.puts("=== Example 1: Simple GET ===")
case Flowfull.get(client, "/users") do
{:ok, response} ->
IO.inspect(response, label: "Response")
{:error, error} ->
IO.inspect(error, label: "Error")
end
IO.puts("\n=== Example 2: POST with body ===")
case Flowfull.post(client, "/users", %{
name: "John Doe",
email: "john@example.com",
age: 30
}) do
{:ok, response} ->
IO.inspect(response, label: "Response")
{:error, error} ->
IO.inspect(error, label: "Error")
end
IO.puts("\n=== Example 3: PUT update ===")
case Flowfull.put(client, "/users/123", %{
name: "Jane Doe",
email: "jane@example.com"
}) do
{:ok, response} ->
IO.inspect(response, label: "Response")
{:error, error} ->
IO.inspect(error, label: "Error")
end
IO.puts("\n=== Example 4: PATCH partial update ===")
case Flowfull.patch(client, "/users/123", %{
email: "newemail@example.com"
}) do
{:ok, response} ->
IO.inspect(response, label: "Response")
{:error, error} ->
IO.inspect(error, label: "Error")
end
IO.puts("\n=== Example 5: DELETE ===")
case Flowfull.delete(client, "/users/123") do
{:ok, response} ->
IO.inspect(response, label: "Response")
{:error, error} ->
IO.inspect(error, label: "Error")
end
IO.puts("\n=== Example 6: Custom headers ===")
client_with_headers =
Flowfull.new("https://api.example.com",
headers: %{
"X-API-Key" => "your-api-key",
"X-Custom-Header" => "custom-value"
}
)
case Flowfull.get(client_with_headers, "/protected") do
{:ok, response} ->
IO.inspect(response, label: "Response")
{:error, error} ->
IO.inspect(error, label: "Error")
end
IO.puts("\n=== Example 7: With timeout ===")
client_with_timeout =
Flowfull.new("https://api.example.com",
timeout: 60_000
)
case Flowfull.get(client_with_timeout, "/slow-endpoint") do
{:ok, response} ->
IO.inspect(response, label: "Response")
{:error, error} ->
IO.inspect(error, label: "Error")
end
IO.puts("\n=== Example 8: With retry ===")
client_with_retry =
Flowfull.new("https://api.example.com",
retry_attempts: 5,
retry_delay: 1000,
retry_exponential: true
)
case Flowfull.get(client_with_retry, "/unreliable") do
{:ok, response} ->
IO.inspect(response, label: "Response")
{:error, error} ->
IO.inspect(error, label: "Error")
end
end
end
BasicExample.run()