SKILL

api-design

Designs an interface other people will depend on — REST endpoints, RPC methods, library functions, CLI commands, event payloads. Use this whenever the user is adding a public endpoint, designing a library's surface, defining a message contract, or asking how something should be called. Also use before implementing anything other teams or external users will consume, because the cost of changing it later is the whole point. For implementing against an existing interface, use feature-implementation.

原文 · 译文尚未补齐

适用对象:设计与内容创作。自动收录 · 待核查。

原作者说明节选

从固定版本的 SKILL.md 提取,保留原文语言。以下内容属于作者说明,本站尚未验证安装、兼容或运行结果。

查看英文原文

原文涵盖的主题

  • API design
  • 1. Model the domain, not the storage
  • 2. Make the wrong call impossible
  • 3. Design the errors as carefully as the successes
  • 4. Plan for change on day one
  • 5. Be boring and consistent
  • 6. Decide the operational contract
  • Report

An API is a promise. Implementation is cheap to change; a published interface is not, because every caller has to move with you. Design it as though you cannot change it, because roughly speaking you cannot. Design from the caller's side. Write the code that calls your API before you write the API. If that code is awkward, the design is wrong, and you have found out in two minutes instead of after three teams have integrated. The most common failure is exposing your database schema through HTTP. It couples every consumer to your internal structure, so a routine table split becomes everyone's migration. Name resources and operations in the language your users use, not your tables. If a caller must understand your persistence model to use the API, the abstraction has already failed. Done when: you could change the storage layer without touching the interface. Design so misuse does not compile, or fails immediately and clearly: Required things are required. Not optional-with-a-runtime-check. Enums over free strings for anything with a fixed set of values. Distinct types over booleans. create(user, true, false) is unreadable at the call site and easy to get backwards. No parameter whos

这里只展示节选,请以完整原文和当前要求为准。

来源仓库
OKHP3/skillz
源文件
community/api-design/SKILL.md
固定版本
7b187777d42ab7bc7bab1e5f2c940cd3139ecebf
阅读完整原作者说明 ↗

准备条件

  • 本条仅收录原作者的技能元数据;请阅读完整说明,确认依赖、许可与使用条件。

第一件可以尝试的小事

先阅读原作者说明,再决定是否在自己的 AI 工具中使用。

对应 AI 工具说明

作者有说明不等于本站实机验证。没有证据时,不自动标为兼容、安全或免费。

来源与内容状态

本条为自动发现的元数据,尚未完成人工文档核查;适用性与运行结果待核查。

原作者:OKHP3/skillz · 原作者仓库元数据。文档核查:未核查。最近来源检查:2026-11-10T10:00:53.986Z。

分类由名称、说明与路径规则生成,分类不代表已核实适配。

许可与权利归属

MIT。第三方内容及版权归原作者,使用条件以原文为准。

许可原文 ↗

本站没有因同步、复制或用户自报成功而将资源标为运行验证通过。

限制与注意事项

  • 元数据收录不代表本站已经安装、适配、实测或进行安全审查。