안녕하세요. 이번 시간에는 알라딘 상품 검색 API를 사용하여 책에 대한 데이터를 가져와보겠습니다.
결과부터 보여드리겠습니다.
목차
1. 알라딘 Open API 매뉴얼
2. http request - retrofit
3. http response
1. 알라딘 Open API 매뉴얼
1-1. 공식 사이트
https://docs.google.com/document/d/1mX-WxuoGs8Hy-QalhHcvuV17n50uGI2Sg_GHofgiePE/edit#
알라딘 Open API 매뉴얼
1. 요청 (Request) 1) 상품 검색 API 2) 상품 리스트 API 3) 상품 조회 API 4) 중고상품 보유 매장 검색 API 2. 응답 (Response) 1) 상품 검색/상품 리스트/상품 조회 API 2) 상품 조회 API : 부가정보 3) 중고상품 보
docs.google.com
API 사용하는 방법을 참고하세요.
1-2. TTB key
요청보낼 때 key를 필수로 입력해야하기 때문에 꼭 인증키를 받습니다.
2. request - retrofit
https://stickode.tistory.com/42
[Java][Android] retrofit2 사용법
오늘은 레트로핏2 라이브러리를 이용해서 서버와 통신하는 방법에 대해 알아보겠습니다. Gradle 의존성 추가 레트로핏2 라이브러리를 사용하기 위해 build.gradle(app) 파일에 retrofit 라이브러를 추가
stickode.tistory.com
retrofit사용법을 참고하시기 바랍니다.
2-1. serchView
// 책 검색 이벤트 (검색버튼 / 입력한 글자)
binding.searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
Toast.makeText(getApplicationContext(), "[검색버튼클릭] 검색어 = "+query, Toast.LENGTH_LONG).show();
clickSearch(query); // 알라딘 api
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return true;
}
});
'싱아는' 이라는 단어를 검색했다면 String query에 값이 담기게 됩니다.
2-2. interface 구현
3. http response
// 알라딘 책 검색 api를 통해 책 목록을 받아옴
private void clickSearch(String keyword) { Log.e(TAG, "clickSearch() keyword : "+keyword);
RetrofitAladin retrofitAladin = RetrofitAladin.getInstance(); // baseUrl에 "https://www.aladin.co.kr/ttb/api/"를 넣는다
HttpRequest httpRequest_aladin = retrofitAladin.getRetrofitInterface();
// 요청 메소드 이름 : getSearchBook
httpRequest_aladin.getSearchBook(ttbkey, keyword).enqueue(new Callback<String>() {
@SuppressLint("NotifyDataSetChanged")
@Override
public void onResponse(Call<String> call, retrofit2.Response<String> response) {
Log.e(TAG, "onResponse: " + response.body());
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Log.e(TAG, "onFailure: " + t.getMessage());
}
});
}
response.body()를 출력하면 위에서 보여드렸던 데이터가 나오게됩니다.
'안드로이드 자바' 카테고리의 다른 글
[JAVA][Android] SearchView 구현하기 (0) | 2023.02.14 |
---|---|
[Java][Android] 소켓(Socket)을 이용해 에코서버(Echo Server) 구현 (0) | 2023.02.13 |
[Android][Java] LineChat 그리는법 (0) | 2023.02.09 |
[Android][Java] 원형 로딩바 만들기 (0) | 2023.02.08 |
[Android][Java] FloatingActionButton에 카운터 기능 추가하기 (0) | 2023.02.07 |