| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | package middlewareimport (	"context"	"strconv"	"github.com/go-kratos/kratos/v2/middleware"	"github.com/go-kratos/kratos/v2/transport/http")var pageURI = make(map[string]bool)func Page(handler middleware.Handler) middleware.Handler {	return func(ctx context.Context, req interface{}) (reply interface{}, err error) {		if info, ok := http.FromServerContext(ctx); ok {			uri := info.Request.RequestURI			if _, ok1 := pageURI[uri]; !ok1 {				return handler(ctx, req)			}			page := 0			pageSize := 10			query := info.Request.URL.Query()			pageStr := query.Get("page")			if pageStr != "" {				page, err = strconv.Atoi(pageStr)				if err != nil {					return nil, err				}			}			pageSizeStr := query.Get("page_size")			if pageSizeStr != "" {				pageSize, err = strconv.Atoi(pageSizeStr)				if err != nil {					return nil, err				}			}			if pageSize == 0 {				pageSize = 10			}			ctx = context.WithValue(ctx, "page", page)			ctx = context.WithValue(ctx, "page_size", pageSize)		}		return handler(ctx, req)	}}func AddPageURI(r string) {	pageURI[r] = true}
 |