Browse Source

feat(api): 优化 CDN 日志数据结构和字段

- 在 Data 结构中添加 RequestLength 字段
- 为 Header 和 SentHeader 结构添加多个新字段,包括 AcceptCharset、Connection、ContentLength等
- 优化部分字段的命名,如 SECChUaMobile
- 为部分字段添加 omitempty 标签,提高数据传输效率
fusu 1 week ago
parent
commit
377c5a529e
1 changed files with 93 additions and 32 deletions
  1. 93 32
      api/v1/cdn/log.go

+ 93 - 32
api/v1/cdn/log.go

@@ -15,8 +15,8 @@ type Request struct {
 	Keyword       string `json:"keyword" form:"keyword"`
 }
 
+
 type Data struct {
-	HasMore        bool            `json:"hasMore"`
 	HTTPAccessLogs []HTTPAccessLog `json:"httpAccessLogs"`
 	RequestID      string          `json:"requestId"`
 }
@@ -42,6 +42,7 @@ type HTTPAccessLog struct {
 	RemotePort               int64      `json:"remotePort"`
 	Request                  string     `json:"request"`
 	RequestID                string     `json:"requestId"`
+	RequestLength            int64      `json:"requestLength"`
 	RequestMethod            string     `json:"requestMethod"`
 	RequestPath              string     `json:"requestPath"`
 	RequestTime              float64    `json:"requestTime"`
@@ -60,33 +61,46 @@ type HTTPAccessLog struct {
 }
 
 type Header struct {
-	Accept          Accept             `json:"Accept"`
-	AcceptEncoding  AcceptEncoding     `json:"Accept-Encoding"`
-	AcceptLanguage  AcceptLanguage     `json:"Accept-Language"`
-	AdminAccess     *AdminAccess       `json:"Admin-Access,omitempty"`
-	CacheControl    HeaderCacheControl `json:"Cache-Control"`
-	Cookie          Cookie             `json:"Cookie"`
-	Priority        Priority           `json:"Priority"`
-	Referer         Referer            `json:"Referer"`
-	SECCHUA         SECCHUA            `json:"Sec-CH-UA"`
-	SECCHUAMobile   SECCHUAMobile      `json:"Sec-CH-UA-Mobile"`
-	SECCHUAPlatform SECCHUAPlatform    `json:"Sec-CH-UA-Platform"`
-	SECFetchDest    SECFetchDest       `json:"Sec-Fetch-Dest"`
-	SECFetchMode    SECFetchMode       `json:"Sec-Fetch-Mode"`
-	SECFetchSite    SECFetchSite       `json:"Sec-Fetch-Site"`
-	Token           *Token             `json:"Token,omitempty"`
-	UserAgent       UserAgent          `json:"User-Agent"`
-	XForwardedBy    XForwardedBy       `json:"X-Forwarded-By"`
-	XForwardedFor   XForwardedFor      `json:"X-Forwarded-For"`
-	XForwardedHost  XForwardedHost     `json:"X-Forwarded-Host"`
-	XForwardedProto XForwardedProto    `json:"X-Forwarded-Proto"`
-	XRealIP         XRealIP            `json:"X-Real-IP"`
+	Accept                  Accept                   `json:"Accept"`
+	AcceptCharset           *AcceptCharset           `json:"Accept-Charset,omitempty"`
+	AcceptEncoding          AcceptEncoding           `json:"Accept-Encoding"`
+	AcceptLanguage          *AcceptLanguage          `json:"Accept-Language,omitempty"`
+	AdminAccess             *AdminAccess             `json:"Admin-Access,omitempty"`
+	CacheControl            *HeaderCacheControl      `json:"Cache-Control,omitempty"`
+	Connection              *Connection              `json:"Connection,omitempty"`
+	ContentLength           *HeaderContentLength     `json:"Content-Length,omitempty"`
+	ContentType             *HeaderContentType       `json:"Content-Type,omitempty"`
+	Cookie                  *Cookie                  `json:"Cookie,omitempty"`
+	Origin                  *Origin                  `json:"Origin,omitempty"`
+	Priority                *Priority                `json:"Priority,omitempty"`
+	Referer                 *Referer                 `json:"Referer,omitempty"`
+	SECCHUA                 *SECCHUA                 `json:"Sec-CH-UA,omitempty"`
+	SECCHUAMobile           *SECCHUAMobile           `json:"Sec-CH-UA-Mobile,omitempty"`
+	SECChUaMobile           *SECChUaMobile           `json:"Sec-Ch-Ua-Mobile,omitempty"`
+	SECCHUAPlatform         *SECCHUAPlatform         `json:"Sec-CH-UA-Platform,omitempty"`
+	SECFetchDest            *SECFetchDest            `json:"Sec-Fetch-Dest,omitempty"`
+	SECFetchMode            *SECFetchMode            `json:"Sec-Fetch-Mode,omitempty"`
+	SECFetchSite            *SECFetchSite            `json:"Sec-Fetch-Site,omitempty"`
+	SECFetchStorageAccess   *SECFetchStorageAccess   `json:"Sec-Fetch-Storage-Access,omitempty"`
+	SECFetchUser            *SECFetchUser            `json:"Sec-Fetch-User,omitempty"`
+	Token                   *Token                   `json:"Token,omitempty"`
+	UpgradeInsecureRequests *UpgradeInsecureRequests `json:"Upgrade-Insecure-Requests,omitempty"`
+	UserAgent               UserAgent                `json:"User-Agent"`
+	XForwardedBy            *XForwardedBy            `json:"X-Forwarded-By,omitempty"`
+	XForwardedFor           *XForwardedFor           `json:"X-Forwarded-For,omitempty"`
+	XForwardedHost          *XForwardedHost          `json:"X-Forwarded-Host,omitempty"`
+	XForwardedProto         *XForwardedProto         `json:"X-Forwarded-Proto,omitempty"`
+	XRealIP                 *XRealIP                 `json:"X-Real-IP,omitempty"`
 }
 
 type Accept struct {
 	Values []string `json:"values"`
 }
 
+type AcceptCharset struct {
+	Values []string `json:"values"`
+}
+
 type AcceptEncoding struct {
 	Values []string `json:"values"`
 }
@@ -103,10 +117,26 @@ type HeaderCacheControl struct {
 	Values []string `json:"values"`
 }
 
+type Connection struct {
+	Values []string `json:"values"`
+}
+
+type HeaderContentLength struct {
+	Values []string `json:"values"`
+}
+
+type HeaderContentType struct {
+	Values []string `json:"values"`
+}
+
 type Cookie struct {
 	Values []string `json:"values"`
 }
 
+type Origin struct {
+	Values []string `json:"values"`
+}
+
 type Priority struct {
 	Values []string `json:"values"`
 }
@@ -127,6 +157,10 @@ type SECCHUAPlatform struct {
 	Values []string `json:"values"`
 }
 
+type SECChUaMobile struct {
+	Values []string `json:"values"`
+}
+
 type SECFetchDest struct {
 	Values []string `json:"values"`
 }
@@ -139,10 +173,22 @@ type SECFetchSite struct {
 	Values []string `json:"values"`
 }
 
+type SECFetchStorageAccess struct {
+	Values []string `json:"values"`
+}
+
+type SECFetchUser struct {
+	Values []string `json:"values"`
+}
+
 type Token struct {
 	Values []string `json:"values"`
 }
 
+type UpgradeInsecureRequests struct {
+	Values []string `json:"values"`
+}
+
 type UserAgent struct {
 	Values []string `json:"values"`
 }
@@ -179,15 +225,22 @@ type NodeCluster struct {
 }
 
 type SentHeader struct {
-	CacheControl    SentHeaderCacheControl `json:"Cache-Control"`
-	ContentEncoding *ContentEncoding       `json:"Content-Encoding,omitempty"`
-	ContentType     ContentType            `json:"Content-Type"`
-	Date            Date                   `json:"Date"`
-	Etag            *Etag                  `json:"Etag,omitempty"`
-	LastModified    *LastModified          `json:"Last-Modified,omitempty"`
-	Location        *Location              `json:"Location,omitempty"`
-	Server          Server                 `json:"Server"`
-	Vary            *Vary                  `json:"Vary,omitempty"`
+	AcceptRanges    *AcceptRanges            `json:"Accept-Ranges,omitempty"`
+	CacheControl    *SentHeaderCacheControl  `json:"Cache-Control,omitempty"`
+	ContentEncoding *ContentEncoding         `json:"Content-Encoding,omitempty"`
+	ContentLength   *SentHeaderContentLength `json:"Content-Length,omitempty"`
+	ContentType     SentHeaderContentType    `json:"Content-Type"`
+	Date            *Date                    `json:"Date,omitempty"`
+	Etag            *Etag                    `json:"Etag,omitempty"`
+	Expires         *Expires                 `json:"Expires,omitempty"`
+	LastModified    *LastModified            `json:"Last-Modified,omitempty"`
+	Location        Location                 `json:"Location"`
+	Server          *Server                  `json:"Server,omitempty"`
+	Vary            *Vary                    `json:"Vary,omitempty"`
+}
+
+type AcceptRanges struct {
+	Values []string `json:"values"`
 }
 
 type SentHeaderCacheControl struct {
@@ -198,7 +251,11 @@ type ContentEncoding struct {
 	Values []string `json:"values"`
 }
 
-type ContentType struct {
+type SentHeaderContentLength struct {
+	Values []string `json:"values"`
+}
+
+type SentHeaderContentType struct {
 	Values []string `json:"values"`
 }
 
@@ -210,6 +267,10 @@ type Etag struct {
 	Values []string `json:"values"`
 }
 
+type Expires struct {
+	Values []string `json:"values"`
+}
+
 type LastModified struct {
 	Values []string `json:"values"`
 }