@@ -15,6 +15,7 @@ defmodule Wikipedia.API do
|
||||
user_agent: config.user_agent
|
||||
)
|
||||
|> Req.Request.merge_options(config.req_options)
|
||||
|> Req.RateLimiter.attach(name: :wikipedia, cooldown: config.api_cooldown)
|
||||
|> Req.Request.append_request_steps(log_attempt: &log_attempt/1)
|
||||
|> Req.Request.append_response_steps(log_error: &log_error/1)
|
||||
|> Req.merge(
|
||||
@@ -52,6 +53,7 @@ defmodule Wikipedia.API do
|
||||
user_agent: config.user_agent
|
||||
)
|
||||
|> Req.Request.merge_options(config.req_options)
|
||||
|> Req.RateLimiter.attach(name: :wikipedia, cooldown: config.api_cooldown)
|
||||
|> Req.Request.append_request_steps(log_attempt: &log_attempt/1)
|
||||
|> Req.Request.append_response_steps(log_error: &log_error/1)
|
||||
|> Req.merge(url: "/api/rest_v1/page/summary/#{URI.encode(title)}")
|
||||
@@ -78,6 +80,7 @@ defmodule Wikipedia.API do
|
||||
user_agent: config.user_agent
|
||||
)
|
||||
|> Req.Request.merge_options(config.req_options)
|
||||
|> Req.RateLimiter.attach(name: :wikipedia, cooldown: config.api_cooldown)
|
||||
|> Req.Request.append_request_steps(log_attempt: &log_attempt/1)
|
||||
|> Req.Request.append_response_steps(log_error: &log_error/1)
|
||||
|> Req.merge(
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
defmodule Wikipedia.Config do
|
||||
@type t :: %__MODULE__{
|
||||
user_agent: String.t(),
|
||||
req_options: Keyword.t()
|
||||
req_options: Keyword.t(),
|
||||
api_cooldown: non_neg_integer()
|
||||
}
|
||||
|
||||
defstruct user_agent: "change me",
|
||||
req_options: []
|
||||
req_options: [],
|
||||
api_cooldown: 1000
|
||||
|
||||
@schema NimbleOptions.new!(
|
||||
user_agent: [
|
||||
@@ -17,6 +19,11 @@ defmodule Wikipedia.Config do
|
||||
type: :keyword_list,
|
||||
required: false,
|
||||
default: []
|
||||
],
|
||||
api_cooldown: [
|
||||
type: :integer,
|
||||
required: false,
|
||||
default: 1000
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user