초록 : 프로젝트 개발에서 종종 전면 및 후면에서 분리 될 것으로 예상됩니다. 즉, 백엔드 개발자는 종종 많은 수의 서비스 인터페이스를 출력해야합니다. Java 또는 PHP 및 기타 언어이든, 인터페이스 제공 업체는 종종 A 인터페이스 주소, 전달 해야하는 매개 변수 상황, 반환 값의 JSON 데이터 형식 및 각 필드의 설명과 같은 인터페이스 문서를 작성하기 위해 일정량의 노력을 기울여야합니다. 물론 HTTP 요청 헤더, 요청 컨텐츠 및 기타 정보도 고려해야합니다. 프로젝트가 빠르게 진행되고 빠르게 반복함에 따라 백엔드에 의한 인터페이스 출력은 종종 수정 및 수리와 같은 문제에 직면하여 인터페이스 문서도 그에 따라 조정해야 함을 의미합니다. 인터페이스 문서의 유지 보수 및 가독성이 크게 줄어 듭니다.
인터페이스 문서에는 에너지 유지 관리와 적절한 대면 커뮤니케이션이 필요하므로 솔루션을 생각하지 않겠습니까? 첫째 : 인터페이스 문서를 작성할 필요가 없습니다. 둘째 : 프론트 엔드 및 백엔드가 인터페이스 문제를 통신 할 때 백엔드가 URL을 제공 할 수 있습니까? 이 URL에서 호출 할 수있는 모든 서비스 인터페이스를 나열하고 각 서비스 인터페이스에 매개 변수와 리턴 값 설명을 나열하십시오. 셋째 : 백엔드 인터페이스가 통화를 시뮬레이션 할 수 있으면 모든 문제가 해결됩니다. 이 기사에서는 sringboot의 통합 Swagger2 프레임 워크를 설명하는 데 중점을 둘 것입니다.
1.1. Swagger2 종속성을 추가하십시오
프로젝트의 pom.xml 파일에 다음 종속성을 추가하십시오.
<pectionency> <groupid> io.springfox </groupid> <artifactid> springfox-swagger2 </artifactid> <버전> 2.7.0 </version> </dependency> <prectionency> <groupid> io.springfox </groupid> <artifactid> springfox-swagger-ui </artifactid>
먼저 시작 클래스를 만들어야합니다. 코드는 다음과 같습니다.
@SpringBootApplicationPublic Class Application {public static void main (String [] args) {springApplication.run (application.class, args); }}그런 다음 위의 클래스의 동일한 레벨 디렉토리에서 Swagger2에 대한 새 구성 클래스를 다음과 같이 만듭니다.
@configuration @enablebsger2public class swagger2 {@bean public docket createrestapi () {return new docket (documentationtype.wagger_2) .apiinfo (apiinfo ()) .apis (requestHandlersElector.basePackage ( "com.shareniu.weat (")). .짓다(); } private apiinfo apiinfo () {return new apiinfobuilder () .title ( "Share Boot 소스 코드 분석 시리즈 코스 코스를 배우기 위해 공유 Niu를 따르십시오") .Description ( "더 많은 스프링 부팅 관련 기사는 NIU의 블로그를 참조하십시오"). .Contact ( "Niu") .License ( "Copyright 2017-2018 share niu") .version ( "1.0") .build (); }}@Configuration은 스프링 이이 클래스를로드해야한다는 것을 공식화했으며 @enablebsger2 주석은 Swagger 기능을 가능하게해야합니다.
위의 Apiinfo는 결국 프론트 엔드에 표시됩니다. 스캔 패키지를 사용하여 구성을 구성합니다. 이 패키지의 컨트롤러와 하위 포장은 궁극적으로 API 문서를 생성합니다. (@apiignore 주석에 의해 지정된 요청 제외).
1.2. 문서 지침이 추가되었습니다
위의 클래스 선언 후에는 실제로 직접 호출 할 수 있지만 문서의 가독성을 높이려면 인터페이스에 몇 가지 지침을 추가해야합니다. 다음과 같이 먼저 컨트롤러를 작성해 봅시다.
@restController@requestMapping (value = "/user") public class usercontroller {static map <long, user> user = collections.synchronizedmap (new Hashmap <long, user> ()); static {user user = new user (); user.setage (18); user.setid (1l); user.setName ( "aa"); user.put (1L, 사용자); } @apioperation (value = "value ="모든 사용자 목록 가져 오기 ", notes =" ") @requestmapping (value = {" "}, method = requestmethod.get) public list <user> getUserList () {list <user> r = new arrayList <user> (user.values ()); RETOR R; } @apioperation (value = "value ="새 사용자 만들기 ", notes ="사용자 객체에서 사용자 생성 ") @apiimplicitparam (name ="user ", value ="user detail us user ", required = true, datatype ="user ") @requestmapping (value =", methoming = requestmethod.post) public stringer ( @user user user (user.put) 사용자); "성공"을 반환합니다. } @apioperation (value = "value ="사용자 세부 사항 가져 오기 ", notes ="URL의 ID를 기반으로 사용자 세부 사항 가져 오기 ") @apiimplicitparam (name ="id ", value ="user id ", required = true, datatype ="long ") @requestmapping (value ="/{id} ", method = recignsureger (@pathvarivel long varivel) } @apioperation (value = "value ="Update Update ", Notes ="URL ID에 따라 업데이트 객체를 지정하십시오 ") @apiimplicitParam ({@apiimplicitparam ({@apiimplicitparam", value = "user id", required = true, datatype = "long"), @apiimplicitparam (name = "value", value inter inter inter revering ", datevet =" @requestmapping (value = "/{id}", method = requestmethod.put) public String pupuser (@pathvariable long id, @requestbody user user) {user u = user.get (id); u.setName (user.getName ()); u.setage (user.getage ()); user.put (id, u); "성공"을 반환합니다. } @apioperation (value = "기존 사용자 삭제", notes = "URL의 ID에 따라 삭제 삭제를 지정하십시오") @apiimplicitparam (name = "id", value = "user id", required = true, dataType = "long") @requestmapping (value = "/{id}", method the (@PathiveleD.deleTe)) users.remove (id); "성공"을 반환합니다. }} @apioperation :이 인터페이스의 기능을 설명하는 데 사용됩니다. 이 주석은 인터페이스의 책임, 반환 헤더 정보, 메소드의 요청 메소드 ( "get", "head", "post", "put", "delete", "옵션"및 "패치"), 프로토콜 (http, https, ws, wss) 및 http 상태 코드를 설명 할 수 있습니다.
@apiimplicitparam : 매개 변수에 설명을 추가하는 데 사용됩니다. 필요한 항목이든 매개 변수의 이름, 매개 변수의 설명 정보, 읽기 전용 등의 이름을 설정할 수 있습니다.
위의 코드가 제출되면 SpringBoot를 시작하고 아래 그림과 같이 http://127.0.1:8080/wagger-ui.html을 방문하십시오.
위의 그림은 두 부분으로 나뉩니다. 상단 부분은 Swagger2 클래스를 통해 구성되며 하부는 UserController 클래스의 인터페이스 문서입니다.
여기서 우리는 /사용자를 설명하기 위해 예제로 사용합니다.
다음 그림에 표시된대로 클릭 /사용자 :
위의 노란색 지점은이 인터페이스에서 반환 된 샘플 데이터를 보여줍니다. 즉, 사용자의 데이터 구조입니다. 응답 내용 유형 : 인터페이스에서 반환 한 헤더 정보. 시도해보십시오. 아래 그림과 같이 :
이 인터페이스가 반환 한 Baody, Code 및 Response Headers가 성공적으로 반환되었습니다.
요약
위는 편집자가 소개 한 SpringBoot에 Swagger2 프레임 워크를 통합하는 방법입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!