ToolHive uses OpenAPI 3.1.0 for API documentation. The documentation is generated using swag and served using Scalar.
Install the required tools:
# Install swag for OpenAPI generation
go install github.com/swaggo/swag/v2/cmd/swag@v2.0.0-rc4-
Add OpenAPI annotations to your code following the swag documentation
-
Generate the OpenAPI specification:
# at the root of the repository run: swag init -g pkg/api/server.go --v3.1 -o docs/serverThis will generate:
docs/server/swagger.json: OpenAPI 3.1.0 specificationdocs/server/swagger.yaml: YAML version of the specificationdocs/server/docs.go: Go code containing the specification
-
Start the server with OpenAPI docs enabled:
thv serve --openapi
-
Access the documentation:
- OpenAPI JSON spec:
http://localhost:8080/api/openapi.json - Scalar UI:
http://localhost:8080/api/doc
- OpenAPI JSON spec:
-
Always document:
- Request/response schemas
- Error responses
- Authentication requirements
- Query parameters
- Path parameters
-
Use descriptive summaries and descriptions
-
Group related endpoints using tags
-
Keep the documentation up to date with code changes
If the documentation is not updating:
- Check that your annotations are correct
- Verify that you're using the correct version of swag
- Make sure you're running
swag initfrom the correct directory - Check that the generated files are being included in your build