声明Api常量的最佳方法是什么?

时间:2018-01-01 21:31:11

标签: java spring-mvc restful-url

我正在使用Spring Boot开发RESTful应用程序。目前我使用接口来声明端点,因为我想在以下位置重用这些端点:

  1. Spring控制器(例如Api.Product.GET_ONE)
  2. 集成测试(例如Api.Product.BASE_PATH + Api.Product.GET_ONE)
  3. 在客户端应用程序中共享相同的界面

    public interface Api {
        String CONTEXT_PATH = "/gateway";
    
        interface Product {
            String BASE_PATH = "/product";
            String GET_ONE = "/{id}";
        }
    
        interface Order {
            String BASE_PATH = "/order";
            String GET_ONE = "/{id}";
        }
    }
    
  4. 根据Joshua Bloch的说法,常量接口模式是接口的不良使用。 SonarQube还会显示此(squid:S1214)警告。

    声明端点的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

我没有坦率地理解你的做法, 您可以简单地执行以下操作来帮助您重用端点,

public interface MyEndPoints {

    public static final String CONTEXT_PATH = "/gateway";
    public static final String BASE_PATH_PRODUCT = "/product";
    public static final String BASE_PATH_ORDER = "/order";
    public static final String GET_ONE = "/{id}";

} 
  1. Spring控制器(例如MyEndPoints.GET_ONE)
  2. 集成测试(例如MyEndPoints.BASE_PATH_PRODUCT + MyEndPoints.GET_ONE)
  3. 与客户分享
  4. 我认为,当您在客户端不需要它时,您可以将其作为服务器的最终课程。避免引用不同字符串的String BASE_PATH的并发症将在很多方面有所帮助。