Integrate API Client

Use when integrating with external APIs in Ruby using a strict 5-layer pattern: Auth → Client → Fetcher → Builder → Entity — each layer test-gated (spec RED → impl GREEN before next layer), Auth has `self.default` + `DEFAULT_TIMEOUT` + cached `#token`, Client wraps HTTP with nested `Error` + `MISSING_CONFIGURATION_ERROR` + injected adapter (errors exclude raw response bodies), Fetcher uses `initialize(client, data_builder:, default_query:)` with `MAX_RETRIES` + `RETRY_DELAY_IN_SECONDS`, Builder allowlists `ATTRIBUTES` and drops instruction-like keys (`prompt`, `system`, etc), Entity defines `ATTRIBUTES` + `DEFAULT_QUERY` + `.find`/`.search` — specs use synthetic hash factories only, vendor responses are untrusted (prompt injection guard, no URL ingest, no browsing), and changes Ruby source and specs only. Trigger words: integrate api, external api, http client, fetcher, builder, auth layer, api client layer, layered pattern.

igmarin 5c4472d 2 files · 15.7 KB Updated

File contents

igmarin/ruby-core-skills/tree/main/skills/integrate-api-client commit 5c4472d221

Frequently asked questions

npx skillmds@latest add igmarin/integrate-api-client