trembita-http-client

分类: 开发与编程 | 上传者: oleg-kovaloleg-koval | 下载: 0 | 版本: v1.0(最新)

使用基于结果的错误处理、重试和断路器模式与 trembita 构建弹性、类型安全的 HTTP 集成。 --- # Trembita 技能 使用此存储库作为代理使用“trembita”实现 HTTP 客户端的实用参考。 ## 何时使用 - 为第三方 REST API 构建 TypeScript 集成。 - 添加强大的错误处理,无需异常驱动的控制流。 - 以最小的依赖性实现重试、断路器和超时。 - 通过注入 `fetchImpl` 编写可测试的 API 代码。 ## 核心模式 1. 使用 `createTrembita()` 初始化一次并处理 init `Result`。 2. 使用 client.request() 来解析 JSON 正文响应。 3. 当需要 HTTP 元数据(“statusCode”、“body”)时,使用“client.client()”。 4. 通过检查 `result.error.kind` 缩小失败范围。 5. 通过 `createRetryingFetch` 和 `CircuitBreaker` 配置添加弹性。 ## 规范参考 - `README.md` - 快速概述和安装。 - `QUICK_START.md` - 第一次成功的最短路径。 - `LEARNING_GUIDE.md` - 概念和渐进示例。 - `EXAMPLES.md` - 生产风格模式。 - `ARCHITECTURE.md` - 请求/错误流程图。 ## Agent Guardrails - 对于请求结果,更喜欢使用“Result”处理而不是“try/catch”。 - 保持端点配置明确并经过验证。 - 首选“expectedCodes”来记录可接受的 HTTP 结果。 - 使用 `client.client()` 通过状态代码进行 404/202 分支。 - 在测试中注入`fetchImpl`;避免全局获取修补。

更新日志: Source: GitHub https://github.com/oleg-koval/trembita

目录结构

当前层级: tree/main/

  • 📁 .github/
    • 📁 ISSUE_TEMPLATE/
      • 📄 BUG.md 185 B
    • 📁 workflows/
      • 📄 automerge.yml 604 B
      • 📄 code-quality.yml 1.5 KB
      • 📄 codeql-analysis.yml 813 B
      • 📄 merge-me.yml 654 B
      • 📄 npm-release.yml 1.3 KB
      • 📄 pages.yml 750 B
    • 📄 dependabot.yml 504 B
  • 📁 assets/
    • 📄 banner.png 137.7 KB
  • 📁 docs/
    • 📄 SKILL_DEFINITION.md 4.3 KB
  • 📁 examples/
    • 📁 openapi-dogfood/
      • 📄 main.mjs 1.4 KB
      • 📄 package.json 311 B
    • 📄 agent-examples.ts 13.7 KB
    • 📄 README.md 5.6 KB
    • 📄 resilience-patterns.ts 11.0 KB
    • 📄 rest-api-client.ts 5.4 KB
    • 📄 testing-with-mock-fetch.test.ts 7.1 KB
  • 📁 packages/
    • 📁 openapi/
      • 📁 fixtures/
        • 📄 mini-api.openapi.yaml 1.1 KB
        • 📄 mini-api.paths.ts 2.4 KB
      • 📁 scripts/
        • 📄 spike-bundle-metrics.mjs 976 B
      • 📁 src/
        • 📄 expandPath.ts 1009 B
        • 📄 index.ts 504 B
        • 📄 requestOpenapiPath.ts 911 B
      • 📁 test/
        • 📄 expandPath.test.ts 600 B
        • 📄 paths-spike.test.ts 938 B
        • 📄 requestOpenapiPath.test.ts 1.8 KB
      • 📄 eslint.config.js 818 B
      • 📄 package.json 1.4 KB
      • 📄 README.md 5.5 KB
      • 📄 tsconfig.json 430 B
      • 📄 vitest.config.ts 382 B
  • 📁 scripts/
    • 📄 check-openapi-fetch-types.mjs 990 B
    • 📄 patch-npm-vendored.mjs 1.2 KB
  • 📁 src/
    • 📄 constants.ts 201 B
    • 📄 errors.ts 1.2 KB
    • 📄 index.ts 917 B
    • 📄 requestWithStandardSchema.ts 810 B
    • 📄 result.ts 288 B
    • 📄 retryingFetch.ts 2.9 KB
    • 📄 standardSchema.ts 2.9 KB
    • 📄 tracing.ts 417 B
    • 📄 trembita.ts 9.9 KB
    • 📄 url.ts 1.1 KB
    • 📄 validate.ts 2.8 KB
  • 📁 test/
    • 📁 responses/
      • 📄 get-users-page-2.json 336 B
    • 📄 browser-smoke.test.ts 495 B
    • 📄 npm-release-workflow.test.ts 8.2 KB
    • 📄 npm-release.workflow.test.ts 1.7 KB
    • 📄 requestWithStandardSchema.test.ts 3.0 KB
    • 📄 retryingFetch.test.ts 4.7 KB
    • 📄 standardSchema.test.ts 5.0 KB
    • 📄 tracing.test.ts 964 B
    • 📄 trembita.test.ts 28.3 KB
  • 📄 .gitignore 477 B
  • 📄 .prettierignore 173 B
  • 📄 .prettierrc.yml 60 B
  • 📄 .releaserc.yaml 458 B
  • 📄 _config.yml 28 B
  • 📄 AGENT_CHECKLIST.md 9.9 KB
  • 📄 AGENT_GUIDE.md 12.6 KB
  • 📄 ARCHITECTURE.md 15.0 KB
  • 📄 CHANGELOG.md 27.4 KB
  • 📄 CLAUDE.md 3.1 KB
  • 📄 CONTRIBUTING.md 4.1 KB
  • 📄 DECISION_GUIDE.md 11.1 KB
  • 📄 DISCOVERY.md 10.4 KB
  • 📄 eslint.config.js 842 B
  • 📄 EXAMPLES.md 16.4 KB
  • 📄 LEARNING_GUIDE.md 13.1 KB
  • 📄 LICENSE 1.1 KB
  • 📄 package-lock.json 333.4 KB
  • 📄 package.json 2.7 KB
  • 📄 QUICK_START.md 4.2 KB
  • 📄 README.md 17.1 KB
  • 📄 SKILL.md 1.5 KB
  • 📄 SKILL_SUMMARY.md 9.6 KB
  • 📄 SPEC.md 10.7 KB
  • 📄 tsconfig.json 595 B
  • 📄 typedoc.json 234 B
  • 📄 vitest.config.ts 540 B

SKILL.md

登录后下载/点赞/收藏 ❤ 13 | ★ 0
评论 0

请先登录后评论。

评论加载中...