options.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. Namespace string
  14. Gateway string
  15. SaveDir string
  16. }
  17. func (options Options) GetPort() string {
  18. return options.port
  19. }
  20. func (options Options) GetUrlPrefix() string {
  21. return options.urlPrefix
  22. }
  23. type Option func(options *Options)
  24. // WithUrlPrefix 设置URL前缀
  25. func WithUrlPrefix(urlPrefix string) Option {
  26. return func(options *Options) {
  27. options.urlPrefix = urlPrefix
  28. }
  29. }
  30. // WithPort 设置端口
  31. func WithPort(port string) Option {
  32. return func(options *Options) {
  33. options.port = port
  34. }
  35. }
  36. // WithLogSkipPaths 设置日志跳过的打印路径
  37. func WithLogSkipPaths(logSkipPaths ...string) Option {
  38. return func(options *Options) {
  39. options.logSkipPaths = logSkipPaths
  40. }
  41. }
  42. // WithDumpPermissionItemsOption 设置导出权限项配置
  43. func WithDumpPermissionItemsOption(option *DumpPermissionItemsOption) Option {
  44. return func(options *Options) {
  45. options.dumpPermissionItemsOption = option
  46. }
  47. }