httpRequestResource represents an HTTP request. Avoid using directly, use HTTPMiddleware instead.
(r *http.Request, class string)
| 74 | |
| 75 | // httpRequestResource represents an HTTP request. Avoid using directly, use HTTPMiddleware instead. |
| 76 | func httpRequestResource(r *http.Request, class string) Resource { |
| 77 | specificClasses := make([]string, 0, 3) |
| 78 | if template, ok := pathTemplate(r); ok { |
| 79 | specificClasses = append(specificClasses, fmt.Sprintf("%s:%s", class, template)) |
| 80 | } |
| 81 | callerInfo := fmt.Sprintf("ip:%s", httpRemoteIP(r)) |
| 82 | if authTokenID := authTokenID(r.Context()); authTokenID != unauthenticated { |
| 83 | callerInfo = fmt.Sprintf("token:%s", authTokenID) |
| 84 | } |
| 85 | return &resource{ |
| 86 | key: fmt.Sprintf("%s:%s:url:%s", class, callerInfo, r.URL.Path), |
| 87 | classes: append(specificClasses, class, "http"), |
| 88 | } |
| 89 | } |
| 90 | |
| 91 | // grpcMethodResource represents a gRPC request. |
| 92 | func grpcMethodResource(ctx context.Context, fullMethod string, req any) Resource { |
no test coverage detected