options.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package api
  2. type Options struct {
  3. // URL前缀
  4. urlPrefix string
  5. // 端口
  6. port string
  7. // 日志跳过的打印路径
  8. logSkipPaths []string
  9. // 导出权限项配置
  10. dumpPermissionItemsOption *DumpPermissionItemsOption
  11. }
  12. type DumpPermissionItemsOption struct {
  13. SaveDir string
  14. }
  15. func (options Options) GetPort() string {
  16. return options.port
  17. }
  18. func (options Options) GetUrlPrefix() string {
  19. return options.urlPrefix
  20. }
  21. type Option func(options *Options)
  22. // WithUrlPrefix 设置URL前缀
  23. func WithUrlPrefix(urlPrefix string) Option {
  24. return func(options *Options) {
  25. options.urlPrefix = urlPrefix
  26. }
  27. }
  28. // WithPort 设置端口
  29. func WithPort(port string) Option {
  30. return func(options *Options) {
  31. options.port = port
  32. }
  33. }
  34. // WithLogSkipPaths 设置日志跳过的打印路径
  35. func WithLogSkipPaths(logSkipPaths ...string) Option {
  36. return func(options *Options) {
  37. options.logSkipPaths = logSkipPaths
  38. }
  39. }
  40. // WithDumpPermissionItemsOption 设置导出权限项配置
  41. func WithDumpPermissionItemsOption(option *DumpPermissionItemsOption) Option {
  42. return func(options *Options) {
  43. options.dumpPermissionItemsOption = option
  44. }
  45. }