OpenApi codegen으로 API 클라이언트 생성



많은 API가 Swagger을 사용하여 문서화되어 있습니다. API가 어떻게 작동하고 호출하는지 이해할 수 있도록 개발자가 API를 문서화하는 것은 좋은 일입니다.
이 문서에서는 이러한 API를 호출하는 클라이언트를 생성하기 위해 이 문서를 사용하는 데 최선을 다할 것입니다.

필요한 것



이 자습서를 따르려면 REST API 이 필요하므로 다음을 수행할 수 있습니다.
  • 다음을 따르고
  • openApi 2가 준비된 상태로 다른 API가 문서화됨

  • 1단계: api json 문서 가져오기



    이 튜토리얼의 쉬운 부분은 첫 번째 호출이 호출할 API의 json 문서를 가져오기하여 리소스 폴더에 넣는 것입니다.
    내 예에서는 클론 API를 사용하고 Jedi API를 만들었으므로 클론이 jedi를 검색하기 위해 jedi 문서 파일을 가져온 다음 클라이언트를 생성합니다.






    2단계: pom.xml 업데이트



    클라이언트를 생성하기 위해 openApi codegen maven pluggin 을 사용합니다.



    이렇게 하려면 pom.xml의 빌드 부분을 업데이트하고 플러그인을 추가해야 합니다.



    <스크립트 아이디="gist-ltag"src="https://gist.github.com/ErwanLT/cc1f1b13c46260ddb17597d958f3db03.js"/>



    이제 여기에 있는 내용을 살펴보겠습니다.

    <울>
  • 목표 생성은 클라이언트가 빌드의 ... 생성 단계에서 생성되거나 maven 명령 mvn generate을 사용하여 생성될 수 있음을 나타냅니다.


  • 구성에는 다음과 같이 생성된 클라이언트를 사용자 정의하는 데 사용되는 몇 가지 옵션이 있습니다.



    <울>
  • 가져온 파일을 찾을 위치를 플러그인에 알려주는 inputSpec

  • 케이스의 generatorName

  • sourceFolder는 내 클라이언트가 내 리소스 폴더에 생성될 것입니다



  • 몇 가지 옵션을 더 추가할 수 있습니다. 가능한 옵션을 더 잘 이해하기 위해 프로젝트의 README.md을 읽고 귀하의 사례에 적용되는 옵션을 선택하는 것이 좋습니다.



    3단계: 빌드 시작



    플러그인 사용을 구현했으므로 이제 프로젝트를 새로 설치해 보겠습니다.

    모든 것이 올바르게 진행되면 대상 폴더에 다음과 같은 항목이 있어야 합니다.





    보다시피 플러그인 구성에 설명된 경로에는 ApiClient를 사용하여 jedi API를 호출하는 컨트롤러 JediControllerApi와 생성된 제 문서 Jedi에 설명된 모델이 있습니다.



    이를 사용하면 직접 만든 다음 매핑을 수행할 필요 없이 내 프로젝트에서 이 개체를 직접 사용할 수 있습니다.



    4단계: 생성된 파일 탐색



    내 문서 파일에서 1단계를 주의 깊게 읽었다면 서버 URL은 포트 8082를 사용하는 로컬 호스트였으므로 내 ApiClient에는 이 값을 가질 필드(기본 경로)도 있을 것입니다.




    private String basePath = “http://localhost:8082";
    


    기본적으로 생성된 클라이언트는 Okhttp를 사용하여 API를 호출하므로 앱을 실행하려면 pom.xml에 종속성을 추가해야 할 수 있습니다.



    5단계: 클라이언트 사용



    클라이언트 세대를 모두 살펴보았으니 이제 사용하는 것이 가장 좋지 않을까요?

    여기서 어려운 것은 없습니다. 생성된 컨트롤러를 선언하고 호출하여 두 번째 API에 도달하기만 하면 됩니다.




    JediControllerApi jediControllerApi = **new **JediControllerApi();
    **return **jediControllerApi.getAllJedi();
    


    읽어주셔서 감사합니다. 이전과 마찬가지로 이 튜토리얼에 사용된 코드는 this Github repository, openApiCodeGen 분기에서 찾을 수 있습니다.

    좋은 웹페이지 즐겨찾기