Class: Scaled::HTTP
- Inherits:
-
Object
- Object
- Scaled::HTTP
- Defined in:
- lib/scaled/http.rb
Overview
Low-level HTTP wrapper for Tailscale API requests. Низькорівневий HTTP-обгортка для запитів до Tailscale API.
Constant Summary collapse
- DEFAULT_BASE_URL =
"https://api.tailscale.com/api/v2"
Instance Method Summary collapse
-
#initialize(auth:, base_url: DEFAULT_BASE_URL, open_timeout: 5, read_timeout: 30, user_agent: "scaled-ruby") ⇒ void
constructor
Note: ‘auth` must respond to `apply(headers)`.
-
#request(method:, path:, query: nil, body: nil, headers: {}) ⇒ Hash, ...
Note: raises specialized Scaled errors for non-2xx responses.
Constructor Details
#initialize(auth:, base_url: DEFAULT_BASE_URL, open_timeout: 5, read_timeout: 30, user_agent: "scaled-ruby") ⇒ void
Note: ‘auth` must respond to `apply(headers)`. Нотатка: `auth` має підтримувати метод `apply(headers)`.
21 22 23 24 25 26 27 |
# File 'lib/scaled/http.rb', line 21 def initialize(auth:, base_url: DEFAULT_BASE_URL, open_timeout: 5, read_timeout: 30, user_agent: "scaled-ruby") @auth = auth @base_url = base_url @open_timeout = open_timeout @read_timeout = read_timeout @user_agent = user_agent end |
Instance Method Details
#request(method:, path:, query: nil, body: nil, headers: {}) ⇒ Hash, ...
Note: raises specialized Scaled errors for non-2xx responses. Нотатка: для не-2xx відповідей піднімає спеціалізовані помилки Scaled.
37 38 39 40 41 |
# File 'lib/scaled/http.rb', line 37 def request(method:, path:, query: nil, body: nil, headers: {}) uri = build_uri(path, query) http_response = perform_request(method: method, uri: uri, body: body, headers: headers) parse_or_raise(http_response) end |