5 글 보임 - 1 에서 5 까지 (총 5 중에서)
-
글쓴이글
-
2023년 3월 31일 17:29 #74322
정중식참가자리액트 , 리액트 쿼리를 이용해서 카카오 오픈api를 가져오는데요 자꾸 언디파인이뜨고 이런 에러가 낭보니다.
우선 저의 api.ts파일의 코드입니다.
import axios from 'axios';
const api = axios.create({ baseURL: 'https://dapi.kakao.com', headers: { Authorization: `KakaoAK ${process.env.REACT_APP_KAKAO_API_KEY}`, }, });
export const searchBooks = (params: string | undefined) => { console.log(params); return api.get('/v3/search/book?target=', { params }); };
그리고 여긴 Home.tsx 파일의 코드이구요
import { useQuery } from 'react-query'; import styled from 'styled-components';
import { searchBooks } from '../api';
const Container = styled.div``;
const Home = () => { const { isLoading, data } = useQuery(['allBooks'], () => searchBooks('어벤져스') );
console.log(data); return <Container>Home</Container>; };
export default Home;
혹시 제가 코드를 엉망으로치고있는 걸까요..?
2023년 3월 31일 20:40 #74350
정중식참가자import axios from 'axios';
const api = axios.create({ baseURL: 'https://dapi.kakao.com', headers: { Authorization: `KakaoAK ${process.env.REACT_APP_KAKAO_API_KEY}`, }, });
export const searchBooks = (params: string | undefined) => { console.log('/v3/search/book?target=' + params); return api.get('/v3/search/book?target=' + params); };
이렇게 해주면될까요?
더 자세한 에러는 response: config: {transitional: {…}, adapter: Array(2), transformRequest: Array(1), transformResponse: Array(1), timeout: 0, …} data: errorType: "MissingParameter" message: "query parameter required" 이라고 나오는것 같습니다. 혹시몰라 console.log(${process.env.REACT_APP_KAKAO_API_KEY}) 도 해봤는데 이거는 잘 출력되긴합니다만.. 확실히 제 코드 실수겠죠?.. 털썩;
2023년 3월 31일 22:51 #74370
정중식참가자선생님 안녕하세요, 길바닥 아니, 방바닥에 여기저기 흘린 제 멘탈들을 다시 주워담고 컴퓨터 앞에 앉았습니다. 결론부터 말씀드리자면 풀어냈습니다. 먼저 제 api.ts 코드입니다.
import axios from 'axios';
const api = axios.create({ baseURL: 'https://dapi.kakao.com', headers: { Authorization: `KakaoAK ${process.env.REACT_APP_KAKAO_API_KEY}`, }, });
export const bookSearch = (text: string | undefined) => { // return api.get('/v3/search/book?target=title', { params });
const params = { query: text, size: 10, target: 'title', }; return api.get('/v3/search/book', { params });
// return api.get('/v3/search/book?target=title' + params); };
다음은 Home.tsx 코드입니다.
import { useQuery } from 'react-query'; import styled from 'styled-components';
import { bookSearch } from '../api';
const Container = styled.div``;
const Logo = styled.h1``; // interface ISearchBooks { // title: string; // contents: string; // url: string; // datetime: Date; // authors: string[]; // publisher: string; // price: number; // sale_price: number; // thumbnail: string; // status: string; // }
const Home = () => { const { isLoading, data } = useQuery(['allBooks'], () => bookSearch('해리포터') );
console.log(data);
return ( <Container> <h1 className='text-3xl font-bold underline'>Hello world!</h1>{' '} </Container> ); };
export default Home;
선생님의 "요청은갔는데 카카오 api 설명서대로 요청안했다는 소리같은데 설명서를 찾아봐야할듯요" 라는 한 문장이 저에게 힘을 불어넣어줬습니다. 왜냐구요? 저는 제가 접근한게 api가 요청은 잘갔는지 안갔는지도 긴가민가했었으니깐요 선생님이 요청은 잘갔는데 카카오 api설명대로 요청안했다는거같은데? 라는 말씀덕분에.. 이렇게 접근할 수 있었습니다 감사합니다.
-
글쓴이글
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
- 답변은 로그인 후 가능합니다.