본문 바로가기

API

(10)
[JAVA] RestTemplate 개념 알아보기! 간단 예제 포함! RestTemplate은 스프링 프레임워크에서 제공하는 HTTP 클라이언트 템플릿 클래스입니다. RESTful API를 소비하는 데 유용한 도구로서, 다음과 같은 다양한 기능을 제공합니다.구분내용간편한 HTTP 요청 및 응답 처리RestTemplate을 사용하면 HTTP 요청 헤더, 본문 및 URL을 쉽게 설정하고, 응답 상태 코드 및 본문을 추출할 수 있습니다.자동 메시지 변환RestTemplate은 기본적으로 JSON, XML, 바이너리 데이터 등 다양한 형식의 메시지를 자동으로 변환합니다.인증 지원기본 인증, 다이제스트 인증, OAuth 등 다양한 인증 방식을 지원합니다.편리한 예외 처리RestTemplate은 HTTP 오류를 처리하고 예외를 발생시켜 응용 프로그램 코드를 간결하게 유지하는 데 도움..
HTTP3에 대해 알아보기! HTTP/3는 인터넷 상에서 데이터를 전송하기 위해 사용되는 프로토콜 중 하나입니다. 이전에 사용되던 HTTP/1.1과 HTTP/2의 후속 버전으로, 성능과 보안 측면에서 개선되었습니다. HTTP/3는 UDP(User Datagram Protocol)를 기반으로 동작하는 QUIC(Quick UDP Internet Connections) 프로토콜을 사용합니다. UDP는 기존의 TCP(Transmission Control Protocol)보다 더 경량화되어 있으며, 연결 설정이 필요하지 않고 패킷 손실에 대한 복구 기능도 제공합니다. 이를 통해 HTTP/3는 기존의 TCP를 사용하는 HTTP/1.1과 HTTP/2보다 더 빠른 연결 설정과 전송 속도를 제공할 수 있습니다. 또한, HTTP/3는 보안 측면에서도..
[AWS] API Gateway API Key 알아보기 AWS API Gateway에서 API Key를 활성화하여 서비스를 제공할 경우에는 사용자는 API키 정보를 필수로 탑재하여 사용을 해야 한다. 키 값이 일치할 경우에는 사전에 설정한 할당량과 속도에 맞게 서비스되고 그렇지 않은 경우 InvalidKeyParameter 예외가 발생한다. 아래와 같은 방식으로 구현하여 사용할 수 있다. 1. 사용자가 HEADER값에 API KEY값을 입력하여 요청. (사용자에게 API KEY값을 공유하여 사용한다.) : 사용자는 REST API 요청시 X-API-Key 헤더로서 API KEY를 함께 전달한다. (단, 이와 같이 사용하면 API KEY값이 도난당할 수 있으므로 보안에 위험이 있다.) 2. 권한 부여자가 제공한 API KEY를 사용하기. 사용자가 Token값과..
[AWS] API Gateway 엑세스 제어 (안증/ 인가 / 권한 / API KEY) API Gateway에서 리소스 및 메소드별 엑세스 제어하는 방법에는 여러가지 방법이 있다. (AWS의 서비스들은 항상 최종의 솔루션을 제공하지 않는다. 다양한 수단과 방법만 제공하고 최종 결정은 사용자의 몫으로 남겨둔다.) 1. 리소스 정책 사용 - 특정 IAM 권한이나 역할을 부여 받은 사용자가 리소스별 API 호출 여부를 제어하기 위해 사용된다. - 리소스 정책은 JSON 정책 문서를 작성하여 API에 연결하여 사용한다. - 리소스 정책은 아래와 같이 크게 3가지 형태로 제공된다. 1> 지정된 AWS 계정의 사용자 2> 지정된 원본 IP 주소 범위 또는 CIDR(사이더) 블록 3> 지정된 가상 사설 클라우드 (VPC) 또는 VPC 엔드포인트(계정 무관) *[참고 CIDR : https://ko.wi..
[JAVA] OkHttp로 REST API 호출하기 Android에서 많이 사용하고 있는 OkHttp에 대해 알아보자. OkHttp는 Square에서 제공하는 오픈소스 프로젝트이며 동기, 비동기 방식을 각각 제공해줌으로서 개발자가 선택하여 사용할 수 있다. [GET 동기]public void get(String requestURL) { try { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .addHeader("x-api-key", RestTestCommon.API_KEY) .url(requestURL) .build(); //GET Request //동기 처리시 execute함수 사용 Response response = client.newCall(requ..
[JAVA] HttpURLConnection로 REST API 호출하기 이번 페이지에서는 HttpURLConnection을 이용해 REST API를 호출하는 방법을 알아보자. [GET] public void get(String strUrl) { try { URL url = new URL(strUrl); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setConnectTimeout(5000); //서버에 연결되는 Timeout 시간 설정 con.setReadTimeout(5000); // InputStream 읽어 오는 Timeout 시간 설정 con.addRequestProperty..
[API] REST API 보안 1. 인증 - API 서비스를 사용하고자 하는 대상자가 서비스 사용이 가능한지 여부를 확인하는 것을 의미한다. (일반적인 웹서비스에 로그인과 동일한 기능이다.) 1-1. API Key 가장 기초적인 방법으로 서비스 제공자가 발급해준 KEY를 통해 인증을 하는 방식이다. - API Key는 특정 사용자만 알 수 있는 일종의 문자열로 되어 있다. (예:aASDFasdf87AS5D4F2asddf234SDF234) - API Key는 API 서비스 제공자가 제공하고 사용자는 API Key 정보를 메시지 안에 포함하여 호출한다. - API Key는 한번 노출되면 전체 API가 뚫리는 문제가 발생할 수 있기 때문에 높은 보안 인증이 필요한 상황에는 적합하지 않는 방법이다. 1-2. API Token Token을 활..
[API] REST API 설계 해보기 REST API 디자인 가이드 REST API를 어떻게 디자인 하는지 알아보고 좋은 REST API를 사용자들에게 제공할 수 있도록 해보자. 1. REST는 간략하고 직관적이게 디자인하자. - REST API는 URL만 보고 URL이 의미하는 바를 알 수 있어야 한다. - REST API는 길게 만들기 보다 짧게 만들어 제공하자. (최대 2 Depth를 권장 한다.) - URL은 될 수 있으면 명사를 사용하자. (URL 작성되는 내용은 리소스 정보를 다루고 있기 때문에 동사보다는 명사가 더욱 어울린다. 단, 명사를 사용하게 되면 단수 보다는 복수형을 사용하자. 의미상 복수형이 더욱 어울리는 표현이기 때문이다.) [잘못된 예 : HTTP Post로 모두 정의하고 get/set을 URL에 명시함으로서 행위..