···449449 }
450450 },
451451 "paths": {
452452- "/r/{id}": {
452452+ "/go/{id}": {
453453 "get": {
454454 "summary": "Redirect to Link URL",
455455 "description": "Redirects to the URL associated with the given link ID. This is the public shortlink endpoint.",
···14891489 "/link/{id}": {
14901490 "get": {
14911491 "summary": "Redirect to a Link (Deprecated)",
14921492- "description": "DEPRECATED: Use GET /r/{id} instead. Redirects to the URL associated with the given ID.",
14921492+ "description": "DEPRECATED: Use GET /go/{id} instead. Redirects to the URL associated with the given ID.",
14931493 "deprecated": true,
14941494 "tags": ["Deprecated"],
14951495 "parameters": [
+3-3
internal/handler/api_v1_redirect.go
···88 "strings"
99)
10101111-// APIv1RedirectHandler handles GET /r/{id} - the public shortlink redirect.
1111+// APIv1RedirectHandler handles GET /go/{id} - the public shortlink redirect.
1212// This redirects users to the actual URL associated with a link ID.
1313// If a valid click signature is provided via the sig query parameter,
1414// the click count is incremented asynchronously.
···21212222 ctx := r.Context()
23232424- // Parse ID from path: /r/{id}
2424+ // Parse ID from path: /go/{id}
2525 path := r.URL.Path
2626- idStr := strings.TrimPrefix(path, "/r/")
2626+ idStr := strings.TrimPrefix(path, "/go/")
27272828 // Check if we got a valid ID string
2929 if idStr == "" || idStr == path {