使用org.apache.http
与
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
描述端点上的 swagger 配置(不过,这不仅仅是库的唯一目的),如下所示:
@ApiResponses(value = {
@ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = "Bad Request"),
@ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = "Server Error")
})
我想要做的是将“错误请求”替换为等效的枚举(据说)以避免每次都对消息进行硬编码。
第一季度 - 我尝试在 HTTP
包中查找,但找不到。是否有任何现有的已知枚举/类的原因短语可以实现此目的?
Q2 - 另一种想法是,我可以从 HttpStatus.java
获取变量名称(因为变量名称本身作为短语就足够了)。但疑问又是implementing reflection由于某种原因短语,业务逻辑的成本可能会更高。因此,简而言之,我主要为此目的而尝试关注第一季度。
注意 -当然,由于事实上,我不想仅仅为了获取原因短语而显式定义依赖关系。
最佳答案
我最终做的是添加一个具有相当于 org.apache.HttpStatus 的静态字符串包的类。整数代码,例如 -
public class SwaggerMessage {
public static final String SC_OK = "OK";
public static final String SC_CREATED = "Created";
public static final String SC_ACCEPTED = "Accepted";
public static final String SC_NO_CONTENT = "No Content";
public static final String SC_MOVED_PERMANENTLY = "Moved Permanently";
public static final String BAD_REQUEST = "Bad Request";
public static final String SC_UNAUTHORIZED = "Unauthorized";
public static final String SC_FORBIDDEN = "Forbidden";
public static final String SC_NOT_FOUND = "Not Found";
public static final String SC_INTERNAL_SERVER_ERROR = "Server Error";
public static final String SC_NOT_IMPLEMENTED = "Not Implemented";
public static final String SC_SERVICE_UNAVAILABLE = "Service Unavailable";
}
注意 - 仍在寻求更清洁的解决方案,上述内容符合我在实现的服务中的需要。
关于java - 获取 Swagger 消息中的 HttpStatus ReasonPhrase 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40993832/