기존 Swagger를 사용했었는데, REST docs 를 알게되어 한번 적용해보게 되었다.
먼저 직접 생각해보자.
우선 문서 자체가 필요한 이유는
등 과 같은 이유로 사용을 한다.
: Rest Docs 는 각각의 API 기능에 대해서 테스트 코드가 없으면 적용이 되지 않는다. 따라서 각 API에 대해 테스트 코드를 작성해주자.
Rest docs를 위한 테스트 코드는 위와 같은 형식으로 작성하면 된다.
+> API의 parameter로 요청을 할 때, @RequestParam 인지, @PathVariable 인지 차이가 있다.
전자의 경우에 requestParameters, 후자의 경우 requestFields 를 통해서 테스트 코드를 작성해주었다.
생성된 html 파일에 들어가면 다음과 같이 문서가 생성된다.
두 방법 모두 API 문서 자동화를 통해서 필요한 장점들을 모두 받을 수 있다. 서로 다른점을 찾자면, Swagger 는 UI를 통해서 좀 더 쉽게 다가갈 수 있다는 생각이 들었다. 또한 정상 작동여부는 보장해줄 순 없지만, 어느 정도 API를 Test 할 수 있다는 것이 장점인 것 같다.
그에 비해 Rest Docs는 이런 접근성에서는 우위를 점하지는 못하지만, 각각의 API에 대해 Test Code를 통해서 해당 기능이 정상작동 한다는 것을 보장할 수 있다는 것이 장점인 것 같다.
urlTemplate not found. If you are using MockMvc did you use RestDocumentationRequestBuilders to build the request?
배경 : rest docs 의 andDo document pathParameters 사용중, 이와 같은 오류 만남
해결 : pathParameter 사용 시 MockMvcBuilders 보다 RestDocumentationRequestBuilders를 이용하는 것이 좋다고 한다.