首页 > 解决方案 > 维护 RestController 的路径常量

问题描述

我想知道为 Rest Controller 维护路径常量的常用样式是什么。例如,您有类似的东西:

@RequestMapping(method = RequestMethod.GET, value = ANY_PATH_VALUE)

我现在确实在一个名为的类中维护这些常量(在示例中为 ANY_PATH_VALUE),PathConstants如下所示:

public abstract class PathConstants {
    public static final String ANY_PATH_VALUE = "/path/{SOME_ID}";
    ...
}

将这些值直接保存在 RestController 类的方法中是一种常见的方法,还是像我目前所做的那样?或者有没有更常见的方法来维护这种东西?

标签: javarest

解决方案


这有两个方面,

它实际上具有接近于零的性能问题。这必须具有可读性

  • 第一个视图是将值作为本机字符串保留在控制器中。
    从某种意义上说,这更具可读性,您可以在进入控制器时直接检查确切的 API 路由。
  • 第二种观点是将其保存在其他带有static常量的文件中。
    像这样保留所有路由实际上为您提供了一个通用的地方,您可以在其中了解您当前在应用程序中支持的所有 API 路由。


我个人更喜欢第二种,即将所有路径保存在一个名为APIRoutes的文件中,并进一步按域划分。

public class APIRoutes {

    public class SYSTEM {
         public static final String HEALTH_CHECK = "api/v1/healthcheck";
         public static final String LB_HEALTH_CHECK = "lb/v1/healthcheck";
    }

    public class API {
         public static final String SAVE_X = "api/v1/save";
         public static final String GET_X = "api/v1/get";
    }

    public class CACHE {
         public static final String RELOAD_X = "cache/v1/load/x";
         public static final String RELOAD_Y = "cache/v1/load/y";
    }

}

这种方式在你的控制器中,你有类似的东西

@RequestMapping(method = RequestMethod.GET, value = APIRoutes.API.SAVE_X)

推荐阅读