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

@@ -1,11 +1,12 @@
package idlewatcher
import (
"fmt"
"net/http"
"strconv"
"time"
"github.com/yusing/go-proxy/internal/api/v1/favicon"
api "github.com/yusing/go-proxy/internal/api/v1"
gphttp "github.com/yusing/go-proxy/internal/net/gphttp"
"github.com/yusing/go-proxy/internal/net/gphttp/httpheaders"
)
@@ -62,7 +63,14 @@ func (w *Watcher) wakeFromHTTP(rw http.ResponseWriter, r *http.Request) (shouldN
// handle favicon request
if isFaviconPath(r.URL.Path) {
favicon.GetFavIconFromAlias(rw, r, w.route.Name())
result := api.GetFavIconFromAlias(r.Context(), w.route.Name())
if !result.OK() {
rw.WriteHeader(result.StatusCode)
fmt.Fprint(rw, result.ErrMsg)
return false
}
rw.Header().Set("Content-Type", result.ContentType())
rw.WriteHeader(result.StatusCode)
return false
}