반응형




Naver Open API가 방식이 바뀌어서 이전 글에서 했던 방식은 동작이 되지않는다.

하지만 사전 준비는 동일하니 아래 글을 참고하면 된다.


REST-Assured 를 사용하여 maven 프로젝트로 간단한 API 테스트

http://yonoo88.tistory.com/886


우선 네이버오픈API 페이지에 들어간다.

https://developers.naver.com/main/

들어가서 상단 Application > 애플리케이션 등록을 들어간다.


애플리케이션 이름적고 사용할 API 추가하고 환경은 저렇게 해주어도 된다.



등록하기를 누르면 아래와 같은 화면이 나오는데 

Client ID 와 Client Secret 저 2개가 필요하다.

Client Secret는 우측 보기를 누르면 표시된다.

이 2개를 복사해서 코드에 넣어주어야 한다.

저 2개 값을 header 값으로 추가해주어야 한다.

String 값으로 Client ID,와 Client Secret 에 개인 값을 넣어준다.

그럼 api가 정상적으로 동작한다.



예제코드 뉴스 검색 API 사용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package NaverAPITest.NAPITest;
 
import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
 
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
 
import org.junit.Before;
import org.junit.Test;
 
public class test {
 
    @Before
    public void apiTest() {
         baseURI = "http://openapi.naver.com";
//        baseURI = "http://maps.googleapis.com";
        port = 80;
    }
 
    @Test
    public void test() {
        try {
            String text = URLEncoder.encode("최순실""UTF-8");
            given().
              header("X-Naver-Client-Id""Client ID").
              header("X-Naver-Client-Secret","Client Secret").
             params( //URL 주소의 파라미터 값을 넣어줌
             "query",text     
             ).when().
            
             /*baseURL 을 제외한 뒷부분 주소를 get하고
             *body에서 해당 title 내용을 가져올 위치 지정 후
             *확인할 값을 equalTo에 넣어 확인*/
             get("/v1/search/news.xml").then().body("rss.channel.title", equalTo("Naver Open API - news ::'최순실'"));
//             get("/v1/search/news.xml").then().toString();
            
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }
 
}
 
cs



반응형

+ Recent posts