From 98880c3ec39f6e2ce7997217b27a823be81704be Mon Sep 17 00:00:00 2001 From: Max Novich Date: Wed, 16 Jul 2025 09:48:30 -0700 Subject: [PATCH] Update API generation docs and just task (#2668) --- CONTRIBUTING.md | 15 +++++++++++++++ Justfile | 7 +++++++ 2 files changed, 22 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 15f9f146..5d540b9a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -67,6 +67,21 @@ you can talk to goose! You can now make changes in the code in ui/desktop to iterate on the GUI half of goose. +### Regenerating the OpenAPI schema + +The file `ui/desktop/openapi.json` is automatically generated during the build. +It is written by the `generate_schema` binary in `crates/goose-server`. +If you need to update the spec without starting the UI, run: + +``` +just generate-openapi +``` + +This command regenerates `ui/desktop/openapi.json` and then runs the UI's +`generate-api` script to rebuild the TypeScript client from that spec. + +Changes to the API should be made in the Rust source under `crates/goose-server/src/`. + ## Creating a fork To fork the repository: diff --git a/Justfile b/Justfile index 9641cf28..6b3543c4 100644 --- a/Justfile +++ b/Justfile @@ -177,6 +177,13 @@ run-server: @echo "Running server..." cargo run -p goose-server +# Generate OpenAPI specification without starting the UI +generate-openapi: + @echo "Generating OpenAPI schema..." + cargo run -p goose-server --bin generate_schema + @echo "Generating frontend API..." + cd ui/desktop && npm run generate-api + # make GUI with latest binary lint-ui: cd ui/desktop && npm run lint:check