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

@@ -8,13 +8,14 @@ import (
"github.com/yusing/go-proxy/internal/gperr"
"github.com/yusing/go-proxy/internal/net/gphttp/middleware"
"github.com/yusing/go-proxy/internal/types"
)
type ipHash struct {
*LoadBalancer
realIP *middleware.Middleware
pool Servers
pool types.LoadBalancerServers
mu sync.Mutex
}
@@ -31,7 +32,7 @@ func (lb *LoadBalancer) newIPHash() impl {
return impl
}
func (impl *ipHash) OnAddServer(srv Server) {
func (impl *ipHash) OnAddServer(srv types.LoadBalancerServer) {
impl.mu.Lock()
defer impl.mu.Unlock()
@@ -48,7 +49,7 @@ func (impl *ipHash) OnAddServer(srv Server) {
impl.pool = append(impl.pool, srv)
}
func (impl *ipHash) OnRemoveServer(srv Server) {
func (impl *ipHash) OnRemoveServer(srv types.LoadBalancerServer) {
impl.mu.Lock()
defer impl.mu.Unlock()
@@ -60,7 +61,7 @@ func (impl *ipHash) OnRemoveServer(srv Server) {
}
}
func (impl *ipHash) ServeHTTP(_ Servers, rw http.ResponseWriter, r *http.Request) {
func (impl *ipHash) ServeHTTP(_ types.LoadBalancerServers, rw http.ResponseWriter, r *http.Request) {
if impl.realIP != nil {
impl.realIP.ModifyRequest(impl.serveHTTP, rw, r)
} else {