1. Введение
Цель Swagger состоит в том, чтобы определить независимый от языка стандартный интерфейс для REST API, позволяя пользователям обнаружить и понимать функциональность компьютерных служб без доступа к исходному коду. При правильном определении Swagger пользователи могут понимать и взаимодействовать с удаленными службами с минимальным объемом логики реализации. Аналогично интерфейсу, сделанному с помощью программирования низкого уровня.
2. Шаги реализации
1. Добавить зависимости Maven
<Depective> <groupid> io.springfox </GroupId> <artifactid> Springfox-swagger2 </artifactid> <sersive> 2.6.1 </version> </depertion>
2. Класс конфигурации чванства
@Configuration @entableswagger2 // @componentscan (basepackagecclasses = jgbjbaseinfocompanyapi.class) или @componentscan (basepackages = "com.summersoft.ts.schedule.supervision.controller") // Публика с Scan Public Class Swagerconfig {@bean docket kpupubt {@bean docket kbean docke docke @bean docke docke @bean docke @bean docke kbean docke @bean docke knocter wupubl Swaggerspringmvcplugin () {return New Docket (DocumentType.swagger_2) .apiinfo (apiinfo ()). Select () // Выбор, какие пути и API будут генерировать документ .Apis (requestHandlerselectors.Any () // Наблюдая за всеми API.Paths (PathseSelectors.Any () // scal; } /** * Специфическая информация API * * @return * /private apiinfo apiinfo apiinfo () {apiinfo apiinfo = new apiinfo («Документ API платформы дверей платформы», // заголовок «», // Описание «1.0», // выпуск «», «», «», «// сигнальная сигнала»;3. Swagger Notes
Swagger будет сканировать файл класса с помощью аннотации Swagger по пути пакета, настроенного в SwaggerConfig, и, наконец, генерирует серию отсканированных файлов JSON ...
Аннотация аннотации чванства: https://github.com/swagger-api/swagger-core/wiki/annotations#apimodel
@API: используется в классе, чтобы проиллюстрировать функцию класса. Следует отметить, что значение, используемое в более старых версиях, представляет собой имя класса, сгенерированное сканированием. После 1.5 тег должен использоваться для представления имени класса.
@Api (Tag = "usercontroller", description = "API, связанный с пользователем")
@Apioperation: используется в методах, чтобы проиллюстрировать функцию методов
@Apioperation (value = "Найти пользователя", notes = "Найти пользователя", httpmethod = "get", производит =
MediaType.application_json_utf8_value)
@Apiparam: используется в списке параметров, чтобы указать значение параметра
@Apiparam (value = "Создать или обновить текущее время (месяц)") Интеллектуальное время
@ApiimplicitAparams: используется для включения набора описаний параметров в метод
@Apiimplicitparam: используется в аннотации @apiimplicitarparams, указывая различные аспекты параметра запроса
Paramtype: где разместить параметр
Заголовок> Получение параметров запроса: @Requestheader
Запрос> Получение параметров запроса: @RequestParam
PATH (для RESTFUL Interface)> Получение параметров запроса: @pathvariable
тело (не используется)
форма (не используется)
Имя: имя параметра
DataType: тип параметров
Требуется: должен ли параметр быть переданный
Значение: значение параметра
DefaultValue: значение по умолчанию параметра
@Apiimplicitarparams ({
@Apiimplicitparam (name = "id", value = "уникальный идентификатор", обязательный = true, dataType = "long", paramtype = "path"),
})
@Apiresponses: используется для представления набора ответов
@Apiresponse: используется в @Apiresponses, он обычно используется для выражения информации о ответе на ошибку
Код: номер, например, 400
Сообщение: Информация, такая как «параметры запроса, не заполненные»
Ответ: класс, который бросает исключение
@Apiresponses (value = {
@Apiresponse (code = 400, message = "nope не предоставлено")
})
@Apimodel: описывает информацию модели (это обычно используется при создании поста, используя сценарии @requestbody, и параметры запроса не могут быть описаны с использованием аннотации @apiimplicitparam)
@Apimodel (value = "class intity class")
@Apimodelproperty: Опишите свойства модели
@Apimodelproperty (value = "login user")
3. Swagger-Ui
С помощью приведенной выше информации о конфигурации Swagger поможет нам отсканировать всю информацию о классе и генерировать файл JSON. Чтобы сделать файлы JSON дружелюбными для людей, вам нужно использовать компонент Swagger-UI:
1. Swagger-ui
2. Загрузите Swagger-UI, создайте новый каталог Swagger в каталоге WebApp, поместите файлы в каталог DIST в каталог Swagger и измените файл index.html. По умолчанию вам нужно получить JSON API от соединения http://petstore.swagger.io/v2/swagger.json. Здесь вам нужно изменить значение URL на http: // {ip}: {port}/{projectName}/api-docs, а значения в {} заполняются в соответствии с их собственной ситуацией.
Например, мое значение URL -адреса:
http: // localhost: 8080/vouchers/api-docs. Кроме того, вам необходимо настроить выпуск ресурса Spring MVC: <MVC: Resources Mapping = "/Swagger/**" location = "/swagger/"/>
Советы: в каталоге Dist умолчайте не так много файлов. Swagger-UI может быть настроен. Это используется в нашем проекте. Нет необходимости менять название проекта. Имя проекта динамически получено: https://files.cnblogs.com/files/jmcui/swagger.zip
3. Как сортировать отображаемые интерфейсы:
Apissorter: Примените сортировку к списку API/тегов. Это может быть «альфа» (отсортировано по имени) или функция (см. Array.prototype.sort () для того, как работают функции сортировки). По умолчанию состоит в том, что заказ, возвращаемый сервером, остается неизменным.
OperationsSorter: Примените сортировку к списку операций для каждого API. Это может быть «альфа» (отсортировано с помощью буквенно -цифровой), «метод» (отсортирован по методу HTTP) или функция (см. Array.prototype.sort (), чтобы знать, как работают функции сортировки). По умолчанию состоит в том, что заказ, возвращаемый сервером, остается неизменным.
Приведенное выше учебник (Share) для настройки плагина Swagger в SpringMVC-это все контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.