Предисловие
В предыдущем блоге мы зарегистрировали сервис в Эврику. Мы можем видеть из интерфейса пользовательского интерфейса Eureka, который был зарегистрирован на сервере Eureka. Однако, если мы хотим увидеть, какие методы RESTFUL Interface предоставляются текущей службой, у нас нет возможности их получить. Традиционный метод состоит в том, чтобы разобраться в документе интерфейса сервиса для связи между разработчиками. В этом случае, много раз, это вызывает несоответствия между документом и кодом, такими как измененный код, но интерфейсный документ не был изменен, и Swagger2 предоставляет нам идеальное решение. Давайте посмотрим, как Swagger2 решает проблему.
1. Представьте пакет JAR, который зависит от Swagger2
<!-Swagger2-> <Dependency> <groupId> io.springfox </GroupId> <strifactId> Springfox-swager2 </artifactid> <sersive> 2.2.2 </version> </resemending> <dependency> <groupid> io.springfox </GroupD> <ratifactid> springfox-swager-uage </artifactid> springfox-swager-uifact> </artifactid> springfox-swager-uigh </artifactid> </Зависимость>
2. Инициализируйте конфигурацию Swagger2
@Configuration @entableswger2 // enable swagger2 public class swagger2 {@bean public docket createrestapi () {// Создать базовую информацию API. Возврат новый Docket (documentType.swagger_2) .apiinfo (apiinfo ()) .select () .APIS (requestHandlerselectors.basepackage ("com.chhliu.jpa"))) // Сканирование всех API в соответствии с этим пакетом, которые необходимо отображать в Swagger, за исключением аннотации @apiignore. } private apiinfo apiinfo () {// Основная информация о создании API, которые будут отображаться в UB Swagger. Вернуть новый Apiinfobuilder () .title («Построение Restful API в Spring Boot с использованием Swagger2») // api title.description («Restful API, предоставленные RDCloud-jpa») // API descint.contact ("chhliu@") // contact.version ("1.0") // номер версии. Build (); }}Примечание. Этот класс конфигурации должен быть создан в каталоге приложений на том же уровне. Когда проект запускается, класс конфигурации инициализируется.
3. Улучшение информации о документе API
public interface SonarControllerI { @ApiOperation(value="get Url information corresponding to Sonar of the project group", notes="get Url information corresponding to Sonar of the project group based on id")// Use this annotation to describe interface method information @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "SonarUrl table ID", required = true, dataType = «Long», ParamType = "path")}) // Использование этой аннотации для описания информации о методе. Здесь следует отметить, что параметр paramtype должен быть настроен в качестве пути, в противном случае ошибка будет сообщена при доступе к методу интерфейса в UI @getMaping ("/get/{id}") Sonarurl get (@pathvaible long id); @Apioperation (value = "получить все URL -информацию, соответствующую Sonar Group Project Sonar") @getmapping ("/get/all") list <sonarurl> getall (); } Примечание. Paramtype представляет тип параметра, необязательные значения являются «Путь», «Body», «Query», «заголовок», «форма»
4. Улучшение информации о возвращении
@Entity (name = "sonar_url") открытый класс Sonarurl реализует serializable { / ** * * / private static final long serialversionuid = 1l; @Apimodelproperty (value = "первичный ключ", hidden = false, notes = "первичный ключ, скрытый", обязательный = true, datatype = "long") // Использование этой аннотации для описания информации о свойстве. Когда hidden = true, это свойство не будет отображаться в API @ID @GeneratedValue (стратегия = GenerationType.Auto) Private Long ID; @Apimodelproperty (value = "адрес ссылки на URL") @column (name = "url") частная строка URL; @Apimodelproperty (value = "Project Group") @column (name = "team") частная строковая команда; @Apimodelproperty (value = "Департамент") @column (name = "Департамент") частное отделение строк; ... опустить Getter, метод сеттера ...}5. Запустите приложение
1. Введите в браузере: http: // localhost: 7622/swagger-ui.html
2. Результаты следующие:
6. Доступ к документу API и тестирование
В дополнение к предоставлению функции просмотра интерфейса API, Swagger также предоставляет функции отладки и тестирования.
Результаты теста следующие:
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.