api-contract-change-end-to-end
Use this when changing REST endpoints so Rust DTOs, UI DTOs, OpenAPI, and docs stay in sync.
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
Goal
Make API changes once, but keep all consumers consistent (CLI/server, UI, docs).
Checklist
- Locate the endpoint
- Routing/handlers:
src/routes.rs,src/api_server.rs,src/web_server.rs
- Update Rust contract types
- DTOs:
src/api_types.rs - If you adjust validation/errors, keep behavior consistent with existing API error shapes (
src/errors.rs).
- Update UI types + API client
- DTOs:
view/api/types.ts(explicit note at top: aligned withsrc/api_types.rs) - Calls:
view/api/client.ts
- Update OpenAPI + help docs
- REST schema:
docs/openapi.json - If it’s user-visible, update relevant guides under
docs/help/*(oftendocs/help/api-quick-reference.md, plus the feature-specific page).
- Add/adjust tests
- Rust behavior:
tests/*.rs(integration-heavy, many useassert_cmd). - UI behavior:
npm run test:ui(Vitest). - Cross-cutting behavior: consider adding/updating smoke coverage under
smoke/tests/.
- Verify locally (CI parity)
-
npm run lint -
npm test -
npm run smoke
Notes
- Treat this repo as “contract-synchronized”: changing just one of Rust/UI/OpenAPI will likely break users or tests.
- Prefer incremental changes that preserve backwards compatibility for existing clients when practical.
Exemples
Consultez les exemples du dépôt source.
Voir la source ↗Historique source
- Date d’indexation
- 2026-01-20
- Mise à jour de l’index
- 2026-01-26
- Branch
- main
Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!