프로필

프로필 사진
Popomon
Frontend Developer
(2020/12 ~)

    카테고리

    포스트

    [Node/Tutorial] Axios 인스턴스로 REST API 사용하기

    2020. 10. 22. 23:05

    꿈가게: To Do List - iOS

    꿈가게: To Do List - Android

    .env 환경변수 파일 만들기

    각각의 API 요청에 필요한 값들을 선언해 둡니다.

     

    SSO_GITHUB_CLIENT_ID=11ca1ffa586c7cea9663
    SSO_GITHUB_CLIENT_SECRET=f5a6c3138294d1c334745e89187450ff8703f8d4

     


    API 인스턴스 생성하기

    해당하는 API 토큰의 사용방식에 맞게 Axios 인스턴스를 생성합니다.

     

    const GithubAPI = (function(){
      const client_id = process.env.SSO_GITHUB_CLIENT_ID;
      const client_secret = process.env.SSO_GITHUB_CLIENT_SECRET;
      const axios = axios.create({
        baseURL: 'https://api.github.com/',
      })
      let token = "";
      
      return {
        setAccessToken: function(access_token){
          token = access_token;
        },
        get: function(url, params){
          return axios.get(url, {
            header: { "Authorization": `token ${token}` },
            params
          })
        },
        post: function(url, data){
          return axios.post(url, data, {
            header: { "Authorization": `token ${token}` }
          })
        },
        put: function(url, data){
          return axios.put(url, data, {
            header: { "Authorization": `token ${token}` }
          })
        },
        delete: function(url, data){
          return axios.delete(url, data, {
            header: { "Authorization": `token ${token}` }
          })
        }
      }
    })();
    

     


    Axios 인스턴스 사용하기

    위에서 생성한 인스턴스는 아래와 같이 사용하실 수 있습니다.

     

    GithubAPI.setAccessToken("aaa");
    
    app.("/myInfo", (req, res) => {
      GithubAPI
      .get("/users/as-you-say")
      .then(ghRes => res.status(200).send(ghRes.json()))
    })