최근 너무 바빠 블로그를 작성하지 못했다..
아직 많이 바쁘지만.. 오래간만에 미디엄 리뷰 먼저 진행하고자 한다.
개발자에게 애플리케이션에 적용할 수 있는 무료 API가 많이 있는데 이 중 5개를 선정하여 설명한다.
1. NASA 오픈 API
NASA Open API 는 수많은 행성의 날씨 정보, 위성 정보 사진 등을 제공한다. 무료 인증 키를 얻은 후에 요청할 수 있다.
다만, 시간당 1,000개 요청으로 제한된다.
API 발급은 매우 쉽다. 사이트에 들어가서 3가지 항목(이름, 성, 메일)만 입력하면 바로 키가 발급된다.
API 키를 발급받은 후에 천문학 사진을 요청해보았다.
1
2
3
4
|
import requests
url = "https://api.nasa.gov/planetary/apod?api_key=<YOUR_API_KEY>"
response = requests.get(url)
print(response.json())
|
cs |
결과
response에 url을 전달해준다. 해당 url에서 이미지를 확인해볼 수 있다.
explanation에서 해설도 확인할 수 있다. 소행성인 명왕성의 천문학 이미지이다.
다른 것도 확인해보면 좋을 것 같다.
2. Open Library APIs
책과 관련된 모든 것을 검색할 수 있다. 또한 이름, ISBN, OCLC, LCCN을 이용해서 책, 저자, 주제 등 여러 가지 방법으로 찾을 수 있다. 책의 텍스트도 검색할 수 있다.
코드
1
2
3
4
5
6
7
|
import urllib
import requests
query = "machine learning"
query = urllib.parse.quote_plus(query)
url = f"http://openlibrary.org/search.json?title={query}"
response = requests.get(url)
print(response.json())
|
cs |
실행결과
키워드를 "machine learning"으로 하여 책을 검색해보았다.
Machine Learning과 관련된 책들이 쭉 나온다. 보기는 어렵기 때문에 pandas를 이용해서 보는게 좋다.
3. Coin API
Coin API 는 완전 무료는 아니다. 암호화폐에 대한 최신 시장 데이터를 얻을 수 있다. 무료 버전은 하루에 100개의 요청까지 가능하다. 금액을 지불하여 유료버전으로 업그레이드하여 더 많이 사용할 수 있긴 하다.
요청 코드
1
2
3
4
5
|
import requests
url = "https://rest.coinapi.io/v1/exchangerate/BTC/USD"
headers = {"X-CoinAPI-Key" : "<YOUR_API_KEY>"}
response = requests.get(url, headers = headers)
print(response.json())
|
cs |
응답 결과(확대해서 보세요)
4. News API
News API 도 완전히 무료는 아니다.
이 API를 이용하면 평판이 좋은 뉴스와 블로그에서 좋은 뉴스 기사를 얻을 수 있다. 유료 버전을 사용하면 요청 수 제한이 풀리고 실시간으로 새 기사도 얻을 수 있다.
1
2
3
4
|
import requests
url = "https://newsapi.org/v2/everything?q=cryptocurrency&apiKey=<YOUR_API_KEY>"
response = requests.get(url)
print(response.json())
|
cs |
5. Spotify API
요새 핫한 Spotify 에서 API를 제공한다.
애플리케이션의 클라이언트 ID와 비밀번호를 얻으면 아티스트, 앨범 등에 대한 정보를 얻을 수 있다. 뿐만 아니라 재생 목록에 항목을 추가/삭제/업데이트할 수 있습니다. Python 개발자를 위해 Spotify API 와 더 쉽게 상호 작용할 수 있는 Spotipy 모듈도 제공한다.
1
2
3
4
5
6
7
8
9
10
|
import requests
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
client_id = "<YOUR_CLIENT_ID>"
client_secret = "<YOUR_CLIENT_SECRET>"
client_credentials_manager = SpotifyClientCredentials(client_id = client_id, client_secret = client_secret)
spot = spotipy.Spotify(client_credentials_manager = client_credentials_manager)
query = "1812 Overture"
search_result = spot.search(query, limit = 10, offset = 0, type = 'track', market = None)
print(search_result)
|
cs |
보너스: The Bored API
마지막으로 Bored API 가 있습니다. 간단히 말해서 이 재미있는 API의 목적은 지루할 때 할 수 있는 활동을 제안한다.
1
2
3
4
|
import requests
url = "https://www.boredapi.com/api/activity/"
response = requests.get(url)
print(response.json())
|
cs |
실행 결과
낚시를 가라 하기도 하고, 새로운 스포츠를 배우라고 알려주기도 한다. ㅋㅋ
마무리하며
개인적으로 NASA 천문학 사진을 볼 수 있는 NASA API가 재미있었다.
완전히 무료가 아닌 것들은 어쩔 수 없지만 활용해볼 수 있는 API는 많은 것 같다.
예를 들면, News API를 이용해서 뉴스 데이터 수집을 해서 자연어처리를 할 수도 있을 것이다.
좋은 무료 API를 찾게 된다면 서비스를 개발해볼 수도 있을 것 같다.
'Medium Review' 카테고리의 다른 글
[Medium Review] 늙은 프로그래머가 직장을 잃었다 (0) | 2021.09.23 |
---|---|
[Medium Blog] 미디엄 블로그 리뷰 (0) | 2021.09.23 |
댓글