API 장터, Rapid API 사용해보기
728x90
반응형

 

Rapid API라는 것을 들어봤을지 모르겠다. 여러 종류의 API를 제공해주는 플랫폼으로 사이드 프로젝트에 사용하기 좋은 것들이 참 많다. 유무료의 API를 사용할 수 있는데 이 중 무료 API를 하나 선택해서 어떻게 사용할 수 있는지 간략하게 설명해 보겠다.

 

 

API Hub - Free Public & Open Rest APIs | RapidAPI

The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as "gluten

rapidapi.com

 

Rapid API 회원가입

회원가입 방법은 따로 알려주지 않아도 알아서 잘 할 수 있을 것이다. 화이팅😁

 

 

샘플용 서버를 만들자

만약 따로 준비된게 없다면 내가 만든 것을 써도 된다. 일종의 낙서장으로 쓰는 프로젝트이다.

 

GitHub - conquerex/WhatTheJpaBook: JPA 스터디 실습 예제

JPA 스터디 실습 예제. Contribute to conquerex/WhatTheJpaBook development by creating an account on GitHub.

github.com

 

 

칵테일 API를 살펴보자

무료 API 종류가 많다. 본 실습에서는 그 중 하나인 칵테일 API를 사용해 볼 것이다. 부분 무료로 하루 100회 호출은 무료이다. 더 자세한 사항은 Pricing 탭에서 확인할 수 있다.

 

 

The Cocktail DB API Documentation (thecocktaildb) | RapidAPI

API to get data on alcohol & cocktails.

rapidapi.com

상단에는 해당 API의 이름이 나와 있고 우측에 얼마나 인기가 있는 API인지, 지연속도가 어떻게 되는지 등이 나와있다. 3단으로 되어 있는 화면에서 가장 왼쪽에는 세부 API 종류가 나와 있고 중간에 해당 API 정보를, 우측에는 사용법을 가이드하고 있다. 본 실습에서는 위 이미지에 나와 있는 API로 실습을 하려고 한다.

 

 

칵테일 API를 사용해보자

유의할 것은 개별로 제공되는 Key 값을 잘 저장해야 한다는 것. 샘플용 서버 코드에는 생략된 부분이 있는데 바로 env 파일이다. 아래 이미지처럼 env 파일을 하나 만들어서 키 값과 url 등의 정보를 저장하자.

 

// environment.env
RAPIDAPI_URL=https://the-cocktail-db.p.rapidapi.com/filter.php?i=Gin
RAPIDAPI_HOST=the-cocktail-db.p.rapidapi.com
RAPIDAPI_KEY=(X-RapidAPI-Key)

 

본 실습은 코틀린 + 스프링 환경이다. 그래서 3단 화면 중 가장 우측의 언어 선택란에서 Kotlin을 선택하고 OkHttp를 그다음 선택을 한다. 이러면 OkHttp 클라이언트를 사용하여 통신하는 방법이 나오게 된다. 이제 코드를 복붙 수준으로 가지고 오면 된다. 그러고는 Application을 동작시킨 후 호출을 해보면 술 종류 중 하나인 진(Gin)으로 만들 수 있는 칵테일 종류가 나온다.

 

import okhttp3.OkHttpClient
import okhttp3.Request
import org.springframework.beans.factory.annotation.Value
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController

@RestController
@RequestMapping("/sample")
class SampleController(
    @Value("\${rapidapi.url}") val url: String,
    @Value("\${rapidapi.host}") val host: String,
    @Value("\${rapidapi.key}") val key: String
) {

    @GetMapping("")
    fun getJudgeList() {
        val client = OkHttpClient()
        println(url)
        println(host)
        println(key)

        val request = Request.Builder()
            .url(url)
            .get()
            .addHeader("x-rapidapi-host", host)
            .addHeader("x-rapidapi-key", key)
            .build()

        val response = client.newCall(request).execute()

        println(">>>> " + (response.body?.string() ?: ""))
    }

}

 

아이디어가 많은 분들에게 Rapid는 신세계일 수 있다. 수많은 도전을 해보길 권해본다. 끄읏~

728x90
반응형