본문 바로가기

SW 개발/REST API13

자주 사용하는 curl 명령어 옵션과 예제 curl은 오픈 소스로 개발되어 윈도우와 리눅스에 기본 설치되고 있는 웹 개발 툴로써 http, https, ftp, sftps, smtp, telnet 등의 다양한 프로토콜과 Proxy, Header, Cookie 등의 세부 옵션까지 쉽게 설정할 수 있습니다. 이러한 장점 때문에 Client를 코딩을 시작하기 전에 curl 명령어로 서버 동작을 먼저 확인함으로써 좀 더 빠르게 개발을 진행할 수 있습니다. 본 포스팅은 curl 옵션 중 자주 사용하는 옵션 위주로 예제와 설명을 정리하였습니다. 연속된 URL 로 요청하고 결과 파일로 지정하기 네이버나 카카오의 HLS 동영상을 다운로드할 때 연속된 URL을 하나의 명령어로 처리할 수 도 있습니다. $ curl "https://example_url/[00000.. 2021. 6. 13.
라이딩 앱 Strava API 사용해보기: Webhook 구현 Webhook 이란 Webhook은 'user-defined http callback'으로 서버에서 데이터 변경이 발생한 경우 클라이언트로 변경 사항을 알려주는 메커니즘입니다. 서버에서 데이터 변경이 있을 경우 사용자가 등록한 Trigger URL(callback url)을 호출하는 방식을 사용합니다. Webhook의 유용한 점은 서버에서 데이터 변경 시점을 알려주시기 때문에 클라이언트에서 주기적으로 서버 데이터를 체크하는 Polling을 사용하지 않아 데이터 Traffic을 줄일 수 있고, Polling으로 인한 서버 부하를 줄일 수 있습니다. Webhook 이란 (출처: 위키 백과) A webhook in web development is a method of augmenting or altering.. 2020. 12. 26.
라이딩 앱 STRAVA API 연동 방법 (Sample code) STRAVA는 전 세계적으로 유명한 자전거 기록 어플입니다. 자전거 이외에 달리기, 사이클, 등산, 테니스 등 많은 운동에 대한 활동량 기록(Activity Record)을 지원합니다. 활동량 기록은 SNS를 통해서 공유 가능하고, 상대 기록과 순위를 볼 수 있습니다. 최근 한국에서도 많은 자전거 매니아 분들이 사용 있으며, 특히 유럽과 미국에서 상당한 수의 사용자를 가지고 있습니다. STRAVA에서는 운동 기기나 스마트 와치를 직접 연동을 하지는 않지만, 각종 운동 데이터를 연동을 통해서 데이터를 수집하고 있으며, 무료/유료 서비스로 활동량 분석에 대한 분석 데이터를 제공합니다. STRAVA가 제공하는 서비스는 REST API 형태로 공개하고 있어 STRAVA 서버에서 데이터를 얻어와 자신만의 웹 페이.. 2020. 12. 26.
외부 망에서 Localhost를 접속하기: ngrok (일부 무료) 집에 있는 로컬 PC를 외부 인터넷 망에서 http 또는 https로 접속하는 방법은 공유기에 포트 포워딩을 설정하는 방법을 많이 사용했습니다. 공유기 포트 포워딩 설정보다 간단하게 외부 인터넷망에서 로컬 PC로 접속하는 방법을 제공하는 ngrok을 설명하도록 하겠습니다. 개발 목적으로 임시로 domain을 할당을 받거나, WebHook을 테스트할 때 유용합니다. 현재는 ngrok은 오픈 소스로 개발되는 툴이 아니고, 유료 서비스로 무료 서비스인 경우 일부 기능에 제한이 있습니다. 1. ngrok 이란 ngrok는 NAT 및 방화벽 뒤에 있는 로컬 서버를 보안 터널을 통해 공용 인터넷에 접속하는 방법을 제공합니다. snap의 ngrok 설치 페이지에서는 아래와 같이 설명되어 있습니다. ngrok: Sec.. 2020. 12. 16.
외부 망에서 Localhost를 접속하기: localtunnel (무료, domain제공) 이전 ngrok 포스팅에서 언급한 것처럼 내부망 PC의 Localhost를 외부 인터넷 망에 노출하는 방법으로 ngrok는 사용할 수 있습니다. ngrok의 단점은 무료 계정 사용자에 대해서 재 시작할 때마다 sub-domain 이름이 랜덤하게 설정되어 매번 URL을 변경해야 하는 불편함이 있습니다. 이러한 ngrok의 단점을 보안할 수 있는 대안은 www.softwaretestinghelp.com/ngrok-alternatives/에 자세하게 설명되어 있고, 이 중에서 Localtunnel을 사용해보기로 했습니다. Localtunnel: 무료, sub-domain name 지원 Serveo : 현재 접속 안됨 Teleconsole : ssh sharing에 적합. ssh tunnel를 통해서 http .. 2020. 12. 15.
무료 REST API 테스트 프로그램: Postman (설치, 활용법) RESP API를 사용하는 클라이언트를 개발하는 경우 서버와의 API 인증과 동작을 먼저 확인 후 파이썬, 자바, NodeJS, PHP 등의 언어로 소스 코드를 작성하는 경우가 많습니다. 이러한 목적으로 전통적인 curl을 사용하여 다양한 옵션으로 API를 테스트할 수 있지만, command line 기반의 툴이기 때문에 많은 '타이핑'이 필요합니다. Postman은 REST API 설계, 개발, 테스팅하는 GUI 툴로 개발 생산성을 높여주는 프로그램입니다. 윈도우 뿐 아니라, 리눅스와 macOS의 설치 프로그램을 지원하며, Web 환경 하에서도 Web Postman 사이트를 통해서 로컬 PC의 설치 프로그램과 동일한 기능을 사용할 수 있습니다. 여러 개의 PC를 사용하는 경우 Web Postman은 유.. 2020. 12. 5.
공공 데이터 Open API 사용법: 코로나 확진자 현황 API (sample code) 공공 데이터 포털(Data Portal)은 행정안전부에서 운영하는 대기환경, 도로명 주소 서비스, 코로나 현황 등의 공공데이터를 REST API로 제공하는 시스템입니다. 대한민국 정부에서 운영하기 때문에 공공데이터 포털 사이트에서 아이디만 만들면 손쉽게 API를 사용할 수 있으며, '무료'로 사용 가능합니다. 정부부처 및 산하기관에서 발행하는 백서, 주제별 전문가가 선정한 최신 이슈와 관련된 지식, 지역/분류체계/제공기관/활용방법 별 공공데이터 개방 현황 등이 제공됩니다. 2020년 11월 현재 6,300개의 API와 36,384개의 파일 데이터를 제공합니다. 공공 데이터를 이용하는 절차는 아래와 같습니다. 사이트 회원 가입 API 분류 검색 API 사용 신청 및 API key 확보 API 호출 및 사용.. 2020. 11. 25.
Service Account(JWT)을 활용한 Google Calendar API 사용 이전 Gmail API 포스팅에서는 Sever-side Web Application 기반으로 OAutho2 인증을 통해서 Access token을 받고 Gmail API를 사용하는 방법에 대해서 포스팅하였다. 본 포스팅에서는 Service Account를 기반한 OAuth 2.0 인증을 받고, Access token을 획득하여 Google Calendar API를 호출하는 과정을 설명하고 한다. 본 게시글은 Google OAutho2.0 의 Service account의 내용을 기반으로 설명하였으며, 실제 동작하는 python sample code도 포함되어 있습니다. Server side web application : Gmail API 게시글 [모바일/REST API] - Google Gmail AP.. 2020. 7. 12.
JWT(JSON Web Token) Encoding 방법 (Python sample code) 글을 시작하기 전에 JWT에 대한 이해는 아래 동영상을 확인해주세요. 개념적으로 쉽게 설명이 되어있습니다. JWT에 대한 개념을 듣고 아래 내용을 확인하시면 실무적으로 도움이 될 것 같습니다. 출처: https://www.youtube.com/watch?v=MUUqogMpGiA Gmail REST API는 Service side Web application으로 Access token을 받아 Gmail API를 사용하는 과정을 설명하였고 이 경우에는 API의 권한(scope) 승인을 위해서 계정 사용자의 로그인과 명시적 권한 승인 과정이 필요하였다. JWT (Json Web Token) 방식은 서버-서버 인증 방식으로 웹 로그인 없이 서비스의 인증을 받을 수 있는 방법으로 서버에 공개를 키를 미리 등록하여.. 2020. 7. 8.
Google gmail API 사용 방법 (3) - Sample code Gmail API 사용 방법에 대한 3번째 포스트입니다. 앞서 2개의 포스트에서는 1) Google API Console에서 프로젝트를 생성하고, Client ID와 sescret을 받는 과정과 2) 구글 인증 서버에 계정 로그인을 통해서 API scope에 대한 명시적 동의를 받아 서버 인증용 access token을 받는 과정을 설명하였다. 본 게시글은 access token을 사용해서 실제 Google REST API에 호출하는 방법과 샘플 코드를 제공한다. [모바일/REST API] - Google Gmail API 사용 방법 (1) [모바일/REST API] - Google Gmail API 사용 방법 (2) Gmail API 사용: curl 명령어 확인하기 구글 API 사용하기 위해서는 API.. 2020. 7. 5.
Google Gmail API 사용 방법 (2) - Sample code 앞선 게시글에서 Google API 콘솔에서 프로젝트를 생성한 후 credential.json을 얻는 방법을 설명하였고, 본 게시글은 아래 그림에서는 붉은색으로 표시한 '구글 인증 서버에 Authoized code를 요청 후 Access toekn을 받는 방법'을 설명하고자 한다. [모바일/REST API] - Google Gmail API 사용 방법 (1) [모바일/REST API] - Google gmail API 사용 방법 (3) Step 2. 구글 인증 서버에서 Authorization code 받기 구글에 OAutho 2.0 의 Web server application에서 설명된 https request 방법을 먼저 확인해야 한다. 구글의 샘플 코드를 보면 아래와 같다. https://accou.. 2020. 7. 5.
Google Gmail API 사용 방법 (1) - Sample code Google에서 제공하는 Gmail REST API를 사용하는 방법에 대해서 설명하고자 한다. Google에서는 GMAIL 뿐 아니라 YouTube, Cloud, Analytics 등 거의 모든 서비스에 대해서 REST API(이하 API)를 지원한다. 참고고, 커멘드 라인으로 Gmail을 전송하는 방법은 아래 게시글에 설명되어 있다. 아래 2가지 모두 stmp 서버의 계정 정보가 노출되어야 한다. 우분투에서 gmail 활용하여 command line으로 email 전송 Python smtplib 사용한 email 발송 예제 (gmail) 본 게시글은 구글 API를 사용하기 위해서는 Web Server application 기준으로 3개의 게시글로 나눠서 설명할 예정이다. 1단계는 Google API C.. 2020. 6. 29.
(작성 중) REST API 개념 잡기 REST API 의 개념 및 실제 응용 관련해서 연재를 할 예정입니다. 이론적이고 애매한 것 보다는 최대한 쉽게 그리고 현실적인 예제를 사용해서 정리할 생각입니다. REST API 는 일반적으로 인증을 먼저 받아야 합니다. 인증 표준인 OAuth 2.0 과 함게 정리할 예정입니다. [특징] REST API = HTTP(S) + JSON + Stateless 클라이언트와 서버의 분리 무상태(Stateless) 캐시 처리가 가능해야 함 시스템이 계층화(Layered) 되어있어야 함 일관성 있는 인터페이스 [구성 요소] 리소스: URL http://***api_sever/resource 등과 같이 URL 과 계증 구조 '/'로 구분한다. Method: HTTP request 에 대한 post, get, del.. 2020. 6. 2.
반응형