• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 선생님 도움부탁드립니다..

선생님 도움부탁드립니다..

5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 글쓴이
  • #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;
     
    혹시  제가 코드를 엉망으로치고있는 걸까요..?
    #74339

    codingapple
    키 마스터
    url적을때 '어쩌구?target=' + params 로 해야할거같은 느낌입니다
    #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}) 도 해봤는데 이거는 잘 출력되긴합니다만..
    
    확실히 제 코드 실수겠죠?..
    털썩;
    
    #74366

    codingapple
    키 마스터
    요청은갔는데 카카오 api 설명서대로 요청안했다는 소리같은데 설명서를 찾아봐야할듯요
    #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 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠