1. API란? : Application Programming Interface의 약자. 일종의 라이브러리임.
2. Open API : 공개된 라이브러리..? 인터넷상에서 공개되어있다는 뜻을 내포함.
흔히 말하는 rest호출을 통해서 사용할 수 있는 기능들을 말한다.
json으로 데이터 교환을 한다.
JavaScript fetch 함수를 사용해서 Open API 호출
Java Retrofit2를 사용해서 Open API 호출
==> 2가지 방법..!
<Kakao 검색 API>
- 웹문서
- 동영상
- 이미지
- 블로그
- 도서
- 카페
1. Retrofit : REST API 호출을 지원하는 자바 라이브러리
2. Gson : JAVA POJO(순수하게 데이터만 가지는 모델객체, 옛날 스타일의 자바 객체)와 JSON(문자열)간 변환 지원 라이브러리
- JSON <- Java POJO : 직렬화
- JSON -> Java POJO : 역직렬화
==> 클래스 3개를 준비해야 함. : Documents, Meta, Root
<Retrofit>
- HTTP 메서드 + URL = 메서드
- API의 각 요청에 대응하는 메서드(GET URL하나)를 인터페이스로 정의
- 어노테이션을 이용하여 통신 방식을 지정
- https://dapi.kakao.com/v3/search/book?query=spring
public interface KakaoBookService {
@GET("v3/search/book")
Call<BookResult> searchBook(@Query("query")String query);
}
<Call 객체>
서버에 요청하는 역할을 하는 객체.
Example)
KakaoBookService api = KakaoBookService.getService();
Call<BookResult> call = api.serachBook("축구", 50, 1); //요청을 할 수 있는 Call 객체 리턴
Response<BookResult> res = call.execute();// 서버에 요청 전송 // 동기식 : execute(); // 비동기식 : enqueue(callback)
isSuccessful() = 200 응답
<검색 복습>
1. 개발자 사이트에서 검색 대상 선정.
2. 요청 URL 확인.
3. 전송해야 할 쿼리의 명칭과 의미 확인.
4. target이 있을 수 있음.
5. 응답의 구조 확인. (Meta는 거의 동일, Documents는 차이가 있음.)
6. 결과를 담은 객체를 POJO 객체로 변환해야 함.
7. domain 객체가 준비됐으면 약간의 조정작업을 통해서(특히 Documents) 프로젝트에 객체 생성하기. - lombok으로 변경, Getter Setter 제거 등..
8. 인터페이스에서 메서드 하나를 생성.
==> 추상메서드가 특히 중요함.
9. 새로운 클래스에 Call 객체를 이용한 검색 클래스를 생성.
끝!
<강사님이 하나 더 소개 (추가적으로..)>
1. 카카오 개발자 사이트에 들어가기
2. 네비게이션, 로컬, 지도 등..
3. 로컬에 들어가면 지역 검색 + 지도 연동을 할 수 있는 REST API가 있음.
'멀티캠퍼스 > Spring' 카테고리의 다른 글
231025 (수) (0) | 2023.10.25 |
---|---|
231020 (금) Weka (0) | 2023.10.20 |
231013 (금) NoSQL - MongoDB (0) | 2023.10.16 |
231012 (목) NoSQL - MongoDB (0) | 2023.10.13 |
검색 알고리즘 (0) | 2023.10.12 |