쉬운 프로그래밍

[Unirest] Unirest를 통한 REST API 호출 본문

Programming/Java

[Unirest] Unirest를 통한 REST API 호출

쉬운형 2021. 5. 30. 00:09

최근 Naver Search Ad API를 기반으로 한 프로젝트를 진행하고 있다.

 

Unirest를 사용해서 데이터를 주고 받고 있는데, 그 내용에 대해서 정리해보려고 한다.

 

Unirest는 오픈소스로 배포되어있는 자바 라이브러리이다.

 

GIT

https://github.com/Kong/unirest-java

 

Kong/unirest-java

Unirest in Java: Simplified, lightweight HTTP client library. - Kong/unirest-java

github.com

 

공식문서

http://kong.github.io/unirest-java/

 

Documentation - Unirest in Java: Simplified, lightweight HTTP client library.

 

kong.github.io

 

Maven이나 Gradle 내에서 의존성을 주입하면 간단히 사용할 수 있다. [공식문서 참고]

 

Unirest는 java 뿐만 아니라 다양한 언어를 지원하고 있는 HTTP 통신 클라이언트 라이브러리이다.

 

GET, POST, PUT, DELETE, PATCH 등 여러가지 요청 방식을 지원하고 있으며, 비동기 통신 또한 지원한다. 

추가적으로, Thread-Safe 하다고 한다. 

 

대표적으로 GET 및 POST에 대한 사용 예시는 아래와 같다.

 

1. GET Request

Unirest.get("http://httpbin.org/{fruit}")
     .routeParam("fruit", "apple")
     .asString();

routeParam 옵션을 통해 path 파라미터를 지정할 수 있다.

 

또한 아래와 같이, 쿼리 파라미터 또한 지원한다.

Unirest.get("http://httpbin.org")
                .queryString("fruit", "apple")
                .queryString("droid", "R2D2")
                .asString();

// Results in "http://httpbin.org?fruit=apple&droid=R2D2"

 

2. POST Request

Unirest.post("http://httpbin.org")
            .header("Content-Type", "application/json")
            .body(obj)
            .asEmpty();

// This will use Jackson to serialize the object into JSON.

 

HttpResponse<JsonNode> response = Unirest.post("http://httpbin.org/post")
      .header("accept", "application/json")
      .queryString("apiKey", "123")
      .field("parameter", "value")
      .field("firstname", "Gary")
      .asJson();

post 요청시에는 body에 java object를 담을 수 있고, field() 옵션을 통해 개별 필드 또한 지정 가능하다. 

 

일반적인 API 리퀘스트의 경우 대부분의 기능을 Unirest로 모두 처리가 가능할 것이다.

 

아래 URL은 naver search ad api 사용에 대한 샘플 코드 깃허브이다.

 

https://github.com/naver/searchad-apidoc/blob/master/java-sample/src/main/java/com/naver/searchad/api/util/RestClient.java

 

naver/searchad-apidoc

Contribute to naver/searchad-apidoc development by creating an account on GitHub.

github.com

 

깔끔하게 Unirest를 사용할 수 있도록 참고하면 좋아보인다. 

 

 

 

 

Comments