Postman에서 요청의 응답을 JSONPath로 필터링하는 방법은 무엇인가요?
_____A1: Postman의 테스트 스크립트 탭에서 `pm.response.json()`을 사용해 응답 본문을 JSON 객체로 불러온 뒤, `pm.expect()` 또는 `console.log()`와 함께 JSONPath 표현식을 이용해 특정 데이터를 추출할 수 있습니다. 예를 들어:
```javascript
let jsonResponse = pm.response.json();
let filteredData = jsonpath.query(jsonResponse, '$.store.book[?(@.price < 10)]');
console.log(filteredData);
```
이는 `jsonpath` 라이브러리를 사용할 경우이며, 기본 Postman 스크립트에서는 `jsonpath` 라이브러리를 직접 지원하지 않습니다.
---
Q2: JSONPath를 직접 Postman에서 사용할 수 있나요?
A2: Postman 내장 기능에는 JSONPath 지원이 없지만, 테스트 스크립트에서 JavaScript를 활용하여 유사 기능을 구현하거나 외부 라이브러리(`jsonpath-plus` 등)를 수동으로 추가해야 합니다. 그러나 일반적으로는 JavaScript의 표준 방식으로 원하는 데이터를 직접 탐색하는 것이 일반적입니다. 예:
```javascript
let books = pm.response.json().store.book.filter(book => book.price < 10);
console.log(books);
```
---
Q3: JSONPath와 비슷하게 응답내 필요한 데이터만 추출해 변수로 저장하는 방법은?
A3: 응답을 JSON으로 파싱 후, JavaScript로 특정 프로퍼티나 배열 요소를 필터링하여 변수에 저장할 수 있습니다. 예:
```javascript
let jsonData = pm.response.json();
pm.environment.set('cheapBooks', JSON.stringify(cheapBooks));
```
---
Q4: Postman 스크립트에서 JSONPath 라이브러리를 어떻게 추가할 수 있나요?
A4: 현재 Postman은 외부 npm 모듈을 직접 설치하는 기능을 지원하지 않아, JSONPath 라이브러리를 직접 추가하기 어렵습니다. 필요시 요청 서버의 응답에서 JavaScript 기본 탐색으로 대체하거나, 별도 스크립트 환경에서 JSONPath를 사용한 후 결과를 Postman에 전달하는 방법을 권장합니다.
---
Q5: 응답 데이터에서 특정 키의 값을 JSONPath 없이 쉽게 얻으려면?
A5: `pm.response.json()`으로 응답을 객체로 변환한 후 점(.) 표기법이나 배열 인덱스를 이용해 접근하세요. 예:
```javascript
let userName = pm.response.json().user.name;
console.log(userName);
```
---
요약:
- Postman은 기본적으로 JSONPath를 직접 지원하지 않습니다.
- 응답 JSON을 자바스크립트 객체로 변환해 JavaScript 함수로 필터링하거나 접근하는 것이 일반적입니다.
- 복잡한 JSONPath가 필요하면 외부 도구나 라이브러리를 사용하세요.
- 간단한 조건이나 특정 값 추출은 자바스크립트 내장 메서드를 활용하면 충분합니다.
작성자:
최다윤 [비회원]
| 작성일자: 1년 전
2024-11-24 07:41:33
조회수: 184 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 184 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.