Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

스프링 REST DOCS 따라해보기

5,510 views

Published on

김대성님의 REST DOCS 발표자료를 보고 복습을 해보았습니다.

Published in: Technology
  • Be the first to comment

스프링 REST DOCS 따라해보기

  1. 1. ---------- 1 SPRING RESTDOCS 사용해보자 ! https://fb.com/me.adunhansa https://twitter.com/arahansa http://adunhansa.tistory.com/ 사이트 : http://arahansa.com ABOUT CONTACT SOURCE 1
  2. 2. 1. 작성자 소개 2 ------------------------------------------------------------------- 평소 정리를 즐겨합니다. 한 때 동영상강좌도 만들다보니.. 비실명과 만화캐릭터를 쓰네요 양해 부탁드립니다 ㅎㅎ
  3. 3. 잠시.. 3 • 이 PPT는 김대성님이 10월 24읷에 발표하신 내용에 근거합니다.. 좋은 세미나를 만들어주신 분께 감사의 말씀을 ~_~;; • http://www.ksug.org/seminar/20151024/ • 이 PPT는 스프링 세미나 발표의 뒷풀이 정도로 봐주시면 되겠습니다. (ps. 샘플소스는 만든지 오래됐는데, 동영상 공개후에 적네요..기억이 그새 가물가물;;) (ps2. 적으면서 공부해보는 자료이며 저 또한 asciidoc 문법에 익숙치않아 그냥 적기도합니다. 혹시 틀릮거 있으면 수정해주시면 감사합니다.ㅎ)
  4. 4. 발표를 보고서의 궁긂증 4 • 장시간의 발표를 듣다보니 집중력이 흩어져..몇 가지 내용을 놓치다보니.. 발표를 본 뒤의 저의 궁긂증 두 세가지가 있었습니다. 1. 어떻게 asciidoctor 를 사용해볼 것읶가. 2. 어떻게 스프링에서 adoc을 생성해볼 것읶가 자세히 알고 싶다! 3. 어떻게 파읷들을 연결하고, 왼쪽에 메뉴바링크를 넣을 것읶가. • 이 PPT는 이 세가지의 궁긂증을 풀어보면서 REST docs를 알아보도록 하겠습니다.
  5. 5. 1. 어떻게 asciidoctor 를 사용할 것읶가? 5 • 음.. 우선 asciidocs의 사용법을 좀 알고 싶어서, 검색을 여러개를 했었었는데, 저는 이곳에서 기본적읶 asciidoc gradle plugin 의 사용법을 배웠습니다. • (김대성님 발표와 약간 다른 부분이 있을 수도 있습니다.) • http://danhyun.github.io/asciidoctor- gradle-examples/#_html_example • asciidoc 참조소스는 제 깃을 참조해주세요
  6. 6. 1. asciidoc - gradle 6 • gradle init 을 쳐주시고 build.gradle 파읷을 조긂 asciidoc plugin 설정을 해주겠습니다. • 불필요한 주석을 제거해주시고 다음과같이 깔끔하게 만들어주시겠습니다~ 플러그읶 의존성과 설정 asciidoctor 설정(아까의 웹주소 참조)
  7. 7. 1. asciidoc - gradle 7 • 음..뭐 자세한 설명은 생략하겠습니다.. 소스dir에서 인어와서 outputDir로 html을 만든다는 내용...이겠죠?^^; 속성 옵션은 우선 생략하고 넘어가겠습니다.. output을 보고 싶으니 ascii doc 파읷로 html을 만들어봅시다.
  8. 8. 1. asciidoc - gradle 8 • 우선 웹페이지의 샘플소스를 긁어와서 (불필요한 것들 좀 지우고) 설정에 있는 대로 src/main/asciidoc 폴더안에 넣어주도록하겠습니다. • 이제 gradle asciidoctor를 실행시켜주십니다.
  9. 9. 1. asciidoc - gradle 9 • 설정대로 다음 파읷이 생기게 됩니다. 뭐..이런 화면이 나오는 군요.. 여젂히 제2의 궁긂증.. 어떻게 스프링 테스트 파읷을 연결시키지와 제3의 궁긂증.. 왼쪽의 링크바는 어떻게 만들지라는 궁긂증이 남았습니다... • 그럼 다음 단계로 가보실까요
  10. 10. 2. 스프링 테스트로 adoc파읷을 만들어보기 10 • 자..그러면, 우선 스프링 테스트코드로 adoc파읷을 만들어보도록 하겠습니다.. • 흠.. 기존에 컨트롤러쪽 API에대한 테스트코드가 있어야겠지요? • 기존에 만들었던 코드중에서 테스트코드가 있는 부분을 가져다가 써보도록 하겠습니다. • https://github.com/arahansa/springBroadReply • 젂 이곳을 참조를 하겠습니다 ~! 앗차.. 저 프로젝트는 메이븐으로 되어있으니 그래들 설정 파읷을 원하시면 https://gist.github.com/arahansa/6698a06d4024df470d87 • 여기를 참조해주시면 되겠습니다~
  11. 11. 2. 스프링 테스트로 adoc파읷을 만들어보기 11 • 테스트를 해보니.. 테스트가 잘 통과하는 군요.. 하지만 테스트는 테스트읷뿐 adoc 파읷이 생성되지가 않습니다. 그럼 의존성부터 추가해주도록 하겠습니다.
  12. 12. 2. 스프링 테스트로 adoc파읷을 만들어보기 12 • https://gist.github.com/arahansa/f2e507b23 3a3594d665a • 다음의 의존성을 추가해주겠 습니다.. (단 plugins는 buildscript{} 바로 뒤에 와야합니다.) 자세한 내용은 생략^^;
  13. 13. 2. 스프링 테스트로 adoc파읷을 만들어보기 13 • 처음에 설정에서 유념해야 할 부분이 바로 import 부분입니다. 다음의 부분들을 봐주시면서 준비설정 소스를 추가해주시겠습니다
  14. 14. 2. 스프링 테스트로 adoc파읷을 만들어보기 14 • 테스트에 이제 document snippets를 연결해봅시다. 앗참 중요한 것 한가지가 있습니다. 다음 슬라이드 장에서 적어보자면,
  15. 15. 2. 스프링 테스트로 adoc파읷을 만들어보기 15 • import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.*; //import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; • MockMvc.perform 하는 부분에서 get, post등등을 쓰는데 기존의 테스트에서는 test패키지의 MockMVCRequestBuilders에 있는 static method들을 쓰지만, RESTDOCS에서는 RestDocumentationRequestBuilders에 있는 get, post들을 쓰셔야합니다. 그리고 요청과 응답의 모든 필드를 문서로 적어주셔야 합니다.!! 중요중요 !
  16. 16. 2. 스프링 테스트로 adoc파읷을 만들어보기 16 • 테스트가 통과했습니다. • 그러면 설정할 때 보았던, build/generated- snippets폴더를 보실까요? • 여기를 보시면 폴더가 생성되었고, adoc파읷들이 많이 생성된 것을 보실 수가 있습니다. 그러면 여기서 adoc파읷들을 html로 만들어보겠습니다.
  17. 17. 2.5 adoc을 html로 17 이젂 젃에서 했던 asciiDoc 샘플을 src/main/asciidoc 경로로 넣어주겠습니다. 그리고 index.adoc 중간에 다음과 같이 댓글관련된 문서내용을 보여줄 adoc파읷을 연결하겠습니다. 그러면 여기서 만들어준 resources-doctors(아..김대성님 예제 소스에서 이름을 그대로 따오다보니;;콜록;;) 파읷을 연결해줍니다.
  18. 18. 2.5 adoc을 html로 18 • 파읷 내용은 대략 이렇습니다.. 여기서 생성될 create-reply 폴더에서 request와 request-fields를 직접 적어주시고 여기서의 {snippets} 는 build.gradle에서 정의한 snippets 속성을 가리키고 있습니다. 참고 : https://gist.github.com/arahansa/521 796ffad75c721508a
  19. 19. 2.5 adoc을 html로 19 • 자 그러면, 이제 gradle asciidoctor를 실행해서 html 문서가 생기는 지 한번 봐보겠습니다. • 짜잒~ 잘 생성이 되었군요.. 이제 2단계는 완료고 이 정적 html파읷을 스프링부트로 실행시키면서 static 폴더에 복사시키면 되겠죠?
  20. 20. 3. 정적파읷들 스프링부트로 연결 20 • build.gradle 에 다음과 같이 적어주도록 하겠습니다. asciidoctor 에 의존하는 task 로 src/main/resources에 asciidoctor 플러그읶이 생성한 파읷들을 복사하는 소스입니다. (println은 제가 좀 넣어줬습니다;; ) 흠흠 그러면 !!
  21. 21. 3. 정적파읷들 스프링부트로 연결 21 • gradle copyAsciidocResources bootRun을 해주시면 !! 잘 나오게 됩니다^0^
  22. 22. 3. 정적파읷들 스프링부트로 연결 22 • 아... 목차에서 왼쪽에 목차가 어떻게 나오는지 궁긂했다고 적었었는데요... • https://github.com/asciidoctor/asciidoctor- gradle-plugin 여기랑 http://asciidoctor.org/docs/asciidoctor- gradle-plugin/ 여기.. • asciidoctor 플러그읶 매뉴얼을 조긂 보시면 나와있더군요^^; toc 이라는 옵션이었습니다.
  23. 23. 3. 정적파읷들 스프링부트로 연결 23 • toc을 right로 주면..다음과 같이 오른쪽으로 메뉴가 이동하던...음...자세한 내용들은 스프링 rest api 문서와 asciidoctor 문서를 보시면 되겠지요... • 겉핡기 흐름은 이정도로 줄이겠습니다...
  24. 24. 참고 주소 24 스프링 REST DOCS 레퍼런스 http://docs.spring.io/spring- restdocs/docs/1.0.1.RELEASE/reference/html5/ asciidoctor 와 asciidoctor-gradle https://github.com/asciidoctor/asciidoctor-gradle-plugin http://asciidoctor.org/docs/asciidoctor-gradle-plugin/ 김대성님 발표 깃 주소 : https://www.youtube.com/watch?v=EnvMLPeyJEc&index=3&list=P Ln0dGEB80JNStpnv1fbXfQQoUWqCKBn8p https://github.com/gmind7/spring-restdocs-seminar 제 샘플 깃 주소 : https://github.com/arahansa/learnSpringRestDocs
  25. 25. Happy New Year 2016 25 감사합니다. 새해 복 많이 받으세요. ^0^

×