refactor(api): restructured API for type safety, maintainability and docs generation

- These changes makes the API incombatible with previous versions
- Added new types for error handling, success responses, and health checks.
- Updated health check logic to utilize the new types for better clarity and structure.
- Refactored existing handlers to improve response consistency and error handling.
- Updated Makefile to include a new target for generating API types from Swagger.
- Updated "new agent" API to respond an encrypted cert pair
This commit is contained in:
yusing
2025-08-16 13:04:05 +08:00
parent fce9ce21c9
commit 35a3e3fef6
149 changed files with 13173 additions and 2173 deletions

View File

@@ -4,7 +4,7 @@ import (
"os"
"time"
"github.com/yusing/go-proxy/internal/watcher/health"
"github.com/yusing/go-proxy/internal/types"
)
type FileServerHealthMonitor struct {
@@ -12,24 +12,24 @@ type FileServerHealthMonitor struct {
path string
}
func NewFileServerHealthMonitor(config *health.HealthCheckConfig, path string) *FileServerHealthMonitor {
func NewFileServerHealthMonitor(config *types.HealthCheckConfig, path string) *FileServerHealthMonitor {
mon := &FileServerHealthMonitor{path: path}
mon.monitor = newMonitor(nil, config, mon.CheckHealth)
return mon
}
func (s *FileServerHealthMonitor) CheckHealth() (*health.HealthCheckResult, error) {
func (s *FileServerHealthMonitor) CheckHealth() (*types.HealthCheckResult, error) {
start := time.Now()
_, err := os.Stat(s.path)
if err != nil {
if os.IsNotExist(err) {
return &health.HealthCheckResult{
return &types.HealthCheckResult{
Detail: err.Error(),
}, nil
}
return nil, err
}
return &health.HealthCheckResult{
return &types.HealthCheckResult{
Healthy: true,
Latency: time.Since(start),
}, nil