ToolHive Server API Documentation
May 22, 2025 ยท View on GitHub
ToolHive uses OpenAPI 3.1.0 for API documentation. The documentation is generated using swag and served using Scalar.
Prerequisites
Install the required tools:
# Install swag for OpenAPI generation
go install github.com/swaggo/swag/v2/cmd/swag@v2.0.0-rc4
Generating Documentation
-
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/swagger.json: OpenAPI 3.1.0 specificationdocs/swagger.yaml: YAML version of the specificationdocs/docs.go: Go code containing the specification
Viewing Documentation
-
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:
Best Practices
-
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
Troubleshooting
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