티스토리 뷰

반응형

회사 api서버에 restdocs를 도입하는 프로젝트를 하는 동료가 있는데, 잘안되는 부분이 있다고 도움을 요청했다.

XML로 Request랑 Response를 받는데, 자꾸 아래와 같은 에러가 나타난다고 한다.

 

org.springframework.restdocs.snippet.SnippetException: Fields with the following paths were not found in the payload: 

 

응답 필드 코드 예제

responseFields(fieldWithPath("response.result.goodsName").description("Goods Name"))
XML 응답 예시

<response>
  <result>
  <goodsName>coffee</goodsName>
  </result>
</response>

 

개인프로젝트로 RestDocs를 해볼 때 JSON으로만 했었어서, 처음에는 뭐가 문제인지 바로 파악이 힘들었다.

하지만 역시나 정답은 문서에 잘 나와 있었다.

XML Field Paths
XML field paths are described using XPath. / is used to descend into a child node.

https://docs.spring.io/spring-restdocs/docs/2.0.4.RELEASE/reference/html5/

 

Spring REST Docs

Document RESTful services by combining hand-written documentation with auto-generated snippets produced with Spring MVC Test.

docs.spring.io

 

Xpath란

XPath(XML Path Language)는 W3C의 표준으로 확장 생성 언어 문서의 구조를 통해 경로 위에 지정한 구문을 사용하여 항목을 배치하고 처리하는 방법을 기술하는 언어이다. XML 표현보다 더 쉽고 약어로 되어 있으며, XSL 변환(XSLT)과 XML 지시자 언어(XPointer)에 쓰이는 언어이다. XPath는 XML 문서의 노드를 정의하기 위하여 경로식을 사용하며, 수학 함수와 기타 확장 가능한 표현들이 있다.

 

출처: https://ko.wikipedia.org/wiki/XPath

 

XPath - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

응답 필드 코드 수정

responseFields(fieldWithPath("/response/result/goodsName").description("Goods Name"))

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함