# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.1.0] - 2025-09-30

### Added
- **OpenAPI 3.0 Support** - Generate both Swagger 2.0 and OpenAPI 3.0 specifications
- New `--spec-version` (`-s`) flag to choose between `swagger2.0` and `openapi3.0`
- Automatic conversion from Swagger 2.0 to OpenAPI 3.0 format
- Support for OpenAPI 3.0 features:
  - Server objects with complete URLs (instead of host/basePath)
  - Components/schemas (instead of definitions)
  - Components/securitySchemes (instead of securityDefinitions)
  - RequestBody separated from parameters
- Integration with `github.com/getkin/kin-openapi` library for OpenAPI 3.0

### Changed
- Updated CLI help text to reflect dual specification support
- Enhanced Makefile examples to generate both Swagger 2.0 and OpenAPI 3.0
- Version bumped to 1.1.0

## [1.0.0] - 2025-09-30

### Added
- Initial release as standalone tool
- Extracted from go-zero project and made independent
- Support for converting go-zero `.api` files to Swagger 2.0 specification
- JSON and YAML output formats
- Command-line interface using cobra
- Support for all go-zero API features:
  - Info properties (title, description, version, host, basePath, etc.)
  - Type definitions (structs, arrays, maps, pointers)
  - Tag-based parameter handling (json, form, path, header)
  - Validation options (range, enum, default, example, optional)
  - Security definitions
  - Code-msg wrapper for responses
  - Definition references
- Internal utility functions to replace go-zero dependencies
- Comprehensive documentation
- Example API files
- Makefile for easy building
- MIT License

### Changed
- Module name from `github.com/zeromicro/go-zero` to `go-doc`
- Removed dependency on `go-zero/tools/goctl/internal/version`
- Removed dependency on `go-zero/tools/goctl/util/*`
- Removed dependency on `google.golang.org/grpc/metadata`
- Project structure reorganized to follow Go best practices
  - `cmd/go-doc/` for main entry point
  - `internal/swagger/` for core logic
  - `internal/util/` for utilities

### Removed
- Dependency on go-zero runtime components
- Go-zero specific version information

---

## Attribution

This project was originally part of the [go-zero](https://github.com/zeromicro/go-zero) 
project's swagger generation plugin. We are grateful to the go-zero team for their 
excellent work.

