API를 통해 데이터를 받아오는 코드를 작성하기 전에, API에서 나의 요청대로 제대로 된 데이터를 받아오는지 먼저 확인을 해볼 필요가 있다. 오늘은 이 과정에 아주 유용한 Postman이라는 플랫폼에 대해 알아본다.
Postman
Postman API Platform | Sign Up for Free
포스트맨(Postman)은 편리한 REST API 설계, 개발, 테스팅 기능을 툴(Tool)로 제공하고, 그 결과를 공유하여 개발 생산성을 높여주는 플랫폼이다. API 테스트뿐만 아니라 Collection Sync, API Monitoring 등 팀원들이 협업하는데 도움을 주는 기능을 제공하기 때문에 툴이 아닌 플랫폼이다.
RESP API를 사용하는 클라이언트를 개발하는 경우 서버와의 API 인증과 동작을 먼저 확인 후 파이썬(Python), 자바(Java), NodeJS, PHP 등의 언어로 소스 코드를 작성하는 경우가 많다. 이러한 목적으로 전통적인 curl을 사용하여 다양한 옵션으로 API를 테스트할 수 있지만, 커멘드 라인(Command Line) 기반의 툴이기 때문에 많은 '타이핑'이 필요하다는 것이 단점이다. 그렇지만 Postman을 이용하면 편하게 API를 테스트할 수 있기 때문에 많이 사용된다.
Client URL
클라이언트에서 커맨드 라인이나 소스코드로 손 쉽게 웹 브라우저 처럼 활동할 수 있도록 해주는 기술(커맨드라인 Tool 혹은 라이브러리)이다. 서버와 통신할 수 있는 커맨드 명령어 툴로, 웹개발에 매우 많이 사용되고 있는 무료 오픈소스이다.
curl [-option] https://minjin-sw.tistory.com 하게되면 소스가 화면으로 출력된다.
이외에 옵션을 이용하여 사용할 수 있다.
| -k | --insecure | https 사이트를 SSL certificate 검증없이 연결한다. | wget 의 --no-check-certificate 과 비슷한 역할 수행 |
|---|---|---|---|
| -l | --head | HTTP header 만 보여주고 content 는 표시하지 않는다 | |
| -D | --dump-header<file> | <file> 에 HTTP header 를 기록한다. | |
| -L | --location | 서버에서 HTTP 301 이나 HTTP 302 응답이 왔을 경우 redirection URL 로 따라간다.--max-redirs 뒤에 숫자로 redirection 을 몇 번 따라갈지 지정할 수 있다. 기본 값은 50이다 | curl -v daum.net 을 실행하면 결과값으로 다음과 같이 HTTP 302 가 리턴된다.< HTTP/1.1 302 Object Moved< Location: http://www.daum.net/-L 옵션을 추가하면 www.daum.net 으로 재접속하여 결과를 받아오게 된다. |
| -d | --data | HTTP Post data | FORM 을 POST 하는 HTTP나 JSON 으로 데이타를 주고받는 REST 기반의 웹서비스 디버깅시 유용한 옵션이다 |
| -v | --verbose | 동작하면서 자세한 옵션을 출력한다. | |
| -J | --remote-header-name | 어떤 웹서비스는 파일 다운로드시 Content-Disposition Header 를 파싱해야 정확한 파일이름을 알 수 있을 경우가 있다. -J 옵션을 주면 헤더에 있는 파일 이름으로 저장한다. | curl 7.20 이상부터 추가된 옵션 |
| -o | --output FILE | curl 은 remote 에서 받아온 데이타를 기본적으로는 콘솔에 출력한다. -o 옵션 뒤에 FILE 을 적어주면 해당 FILE 로 저장한다. (download 시 유용) | |
| -O | --remote-name | file 저장시 remote 의 file 이름으로 저장한다. -o 옵션보다 편리하다. | |
| -s | --silent | 정숙 모드. 진행 내역이나 메시지등을 출력하지 않는다. -o 옵션으로 remote data 도 /dev/null 로 보내면 결과물도 출력되지 않는다 | HTTP response code 만 가져오거나 할 경우 유리 |