Loading...
Loading...
Compare original and translation side by side
---
title: API Design Decisions
tags: [api, architecture, decisions]
------
title: API Design Decisions
tags: [api, architecture, decisions]
---undefinedundefined---
title: Note Title # required — becomes the entity name in the knowledge graph
tags: [tag1, tag2] # optional — for organization and filtering
type: note # optional — defaults to "note", use custom types with schemas
permalink: custom-path # optional — auto-generated from title if omitted
---title# Headingtypepermalinktitledirectoryspecs/api-design-decisionsmemory://specs/api-design-decisionsNote: When using, you don't write frontmatter yourself. Thewrite_note,title,tags, andnote_typeare separate parameters — Basic Memory generates the frontmatter automatically. Yourmetadataparameter is just the markdown body starting withcontent.# Heading
---
title: Note Title # 必填 — 作为知识图谱中的实体名称
tags: [tag1, tag2] # 可选 — 用于分类和筛选
type: note # 可选 — 默认值为"note",可结合自定义类型与模式使用
permalink: custom-path # 可选 — 若省略则自动从标题生成
---title# 标题typepermalinktitledirectoryspecs/api-design-decisionsmemory://specs/api-design-decisions注意: 使用时无需手动编写frontmatter。write_note、title、tags和note_type为独立参数,Basic Memory会自动生成对应的frontmatter。您只需提供从metadata开始的Markdown正文作为# 标题参数即可。content
- [category] Content of the observation #optional-tag- [category] Content of the observation #optional-tag[category] content- [decision] Use PostgreSQL for primary data store
- [risk] Third-party API has no SLA guarantee
- [technique] Exponential backoff for retry logic #resilience
- [question] Should we support multi-tenancy at the DB level?
- [preference] Use Bun over Node for new projects
- [lesson] Always validate webhook signatures server-side
- [status] active
- [flavor] Ethiopian beans work best with lighter roasts[category] content- [decision] Use PostgreSQL for primary data store
- [risk] Third-party API has no SLA guarantee
- [technique] Exponential backoff for retry logic #resilience
- [question] Should we support multi-tenancy at the DB level?
- [preference] Use Bun over Node for new projects
- [lesson] Always validate webhook signatures server-side
- [status] active
- [flavor] Ethiopian beans work best with lighter roasts[decision] Use JWT[decision] Use JWT with 15-minute expiry for API auth[risk] Rate limiting needed #api #securitysearch_notes("[decision]")[decision] Use JWT[decision] Use JWT with 15-minute expiry for API auth[risk] Rate limiting needed #api #securitysearch_notes("[decision]")- relation_type [[Target Note Title]][[...]]- relation_type [[Target Note Title]][[...]]| Type | Purpose | Example |
|---|---|---|
| One thing implements another | |
| Dependencies | |
| General connection | |
| Hierarchy/composition | |
| Enhancement or elaboration | |
| Things that work together | |
| Source material | |
| Supersedes another note | |
| Runtime/build dependency | |
| Alternative approaches | |
| 类型 | 用途 | 示例 |
|---|---|---|
| 表示某事物实现了另一事物 | |
| 表示依赖关系 | |
| 表示通用关联 | |
| 表示层级/组合关系 | |
| 表示增强或扩展 | |
| 表示协同工作的事物 | |
| 表示灵感来源 | |
| 表示替代关系 | |
| 表示运行时/构建依赖 | |
| 表示替代方案 | |
We evaluated [[GraphQL Approach]] but decided against it because
the team has more experience with REST. See [[API Specification]]
for the full contract.referencesWe evaluated [[GraphQL Approach]] but decided against it because
the team has more experience with REST. See [[API Specification]]
for the full contract.references[[Future Topic]]build_contextbuild_context(url="memory://note-title")taught_byblockstested_in[[Future Topic]]build_contextbuild_context(url="memory://note-title")taught_byblockstested_inmemory://memory://memory://api-design-decisions # by permalink (title → kebab-case)
memory://docs/authentication # by file path
memory://docs/authentication.md # with extension (also works)
memory://auth* # wildcard prefix
memory://docs/* # wildcard suffix
memory://project/*/requirements # path wildcardsmemory://api-design-decisions # 通过permalink访问(标题转为短横线分隔形式)
memory://docs/authentication # 通过文件路径访问
memory://docs/authentication.md # 带扩展名的路径(同样有效)
memory://auth* # 前缀通配符
memory://docs/* # 后缀通配符
memory://project/*/requirements # 路径通配符memory://main/specs/api-design # "main" project, "specs/api-design" path
memory://research/papers/crdt # "research" projectmemory://main/specs/api-design # "main"项目,路径为"specs/api-design"
memory://research/papers/crdt # "research"项目build_contextundefinedbuild_contextundefinedundefinedundefinedundefinedundefined
For people, try full name and last name. For organizations, try the full name and common abbreviations.
对于人物,尝试使用全名和姓氏;对于组织,尝试使用全名和常用缩写。edit_notewrite_noteedit_notewrite_noteedit_noteedit_noteundefinedundefined
This preserves existing content and keeps the edit history clean.
这样可以保留现有内容,并保持编辑记录的整洁。write_note(
title="API Design Decisions",
directory="architecture",
tags=["api", "architecture"],
content="""# API Design Decisions
The API team evaluated REST and GraphQL during Q1 planning. After prototyping
both approaches, we chose REST for the public API — broader ecosystem support,
simpler caching with HTTP semantics, and a lower learning curve for external
consumers. GraphQL remains an option for internal services where query
flexibility matters more.write_note(
title="API Design Decisions",
directory="architecture",
tags=["api", "architecture"],
content="""# API Design Decisions
The API team evaluated REST and GraphQL during Q1 planning. After prototyping
both approaches, we chose REST for the public API — broader ecosystem support,
simpler caching with HTTP semantics, and a lower learning curve for external
consumers. GraphQL remains an option for internal services where query
flexibility matters more.
Basic Memory auto-generates frontmatter (including the permalink and memory URL) from the parameters. This note would get permalink `architecture/api-design-decisions` and be addressable at `memory://architecture/api-design-decisions`.
Basic Memory会根据参数自动生成frontmatter(包括permalink和memory URL)。该笔记的permalink为`architecture/api-design-decisions`,可通过`memory://architecture/api-design-decisions`访问。edit_noteundefinededit_noteundefinedundefinedundefinedmove_notemove_note(
identifier="API Design Decisions",
destination_path="archive/api-design-decisions.md"
)[[wiki-links]]memory://move_notemove_note(
identifier="API Design Decisions",
destination_path="archive/api-design-decisions.md"
)[[wiki-links]]memory://[category] contentedit_noteAPI Design DecisionsApi Design decisions/reflect/defrag[category] contentedit_noteAPI Design DecisionsApi Design decisions/reflect/defrag