1

Использование org.apache.http сПолучить HttpStatus ReasonPhrase текст в Swagger сообщении

<dependency> 
    <groupId>org.apache.httpcomponents</groupId> 
    <artifactId>httpclient</artifactId> 
    <version>4.5.2</version> 
</dependency> 

изобразить конфигурацию чванства (не только единственная цель библиотеки, хотя) на конечной точке следующим образом:

@ApiResponses(value = { 
    @ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = "Bad Request"), 
    @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = "Server Error") 
}) 

То, что я хотел бы сделать, это заменить "Bad Request" эквивалентной Enumeration (предположительно), чтобы избежать жесткого кодирования сообщения каждый раз.

Q1 - Я пытался, глядя на один внутри HTTP пакета, но не мог найти. Есть ли какой-либо существующий известный Enum/Class для аргументов причины для достижения этого?

Q2 - Другой путь мысли о том, что я могу получить имя переменной от HttpStatus.java (так как само имя переменной достаточно хорошо, как фраза). Но сомнение опять-таки implementing reflection может быть более дорогостоящим с точки зрения бизнес-логики по причине фразы. Итак, короче говоря, я стараюсь сосредоточиться на Q1 в первую очередь для этого.

Примечание - Конечно, из-за того, что я не хотел бы явным образом определить зависимость только ради извлечения той причине фразы.

ответ

0

То, что я в конечном итоге делаю добавлял класс со статическими строковыми пучками эквивалентен 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"; 

} 

Примечания - Ищет более чистое решение еще и выше ДО моей потребности в услуге.