W7D3 DAILY 과제입니다.
오픈 API
오픈 API(Open Application Programming Interface, Open API, 공개 API) 또는 공개 API는 개발자라면 누구나 사용할 수 있도록 공개된 API를 말하며, 개발자에게 사유 응용 소프트웨어나 웹 서비스의 프로그래밍 적인 권한을 제공한다
출처: https://ko.wikipedia.org/wiki/%EC%98%A4%ED%94%88_API
이제까지 이것저것 하면서 경험한 오픈 API는 크게 두 가지 용도였다.
로그인, 지도, 검색 같은 기능을 가져오기 위한 용도와 데이터를 가져오기 위한 용도.
사실 동작방식도 같아서 같은 말일 것이다...!
(API 사용가이드를 내가 알아들을 수 있는가 그렇지 않은가가 차이점인 것 같다. )
네이버 로그인이 필요한 서비스를 함께 제공하기 위해서, 아니면 네이버 소셜로그인으로 회원가입을 대신하기 위해서 사용할 수 있다.
'네이버 로그인 API는 네이버 로그인 인증 요청 API, 접근 토큰 발급/갱신/삭제 요청API로 구성되어 있습니다. 네이버 로그인 인증 요청 API는 여러분의 웹 또는 앱에 네이버 로그인 화면을 띄우는 API입니다. 이용자가 네이버 회원 인증에 성공하면 API로부터 받은 code 값을 이용해서 접근 토큰 발급 요청 API를 호출합니다. 접근 토큰 발급 요청 API를 통해 받은 접근 토큰(access token) 값은 다음과 같이 회원 프로필 조회를 비롯하여 여러가지 로그인 오픈 API를 호출하는데 사용할 수 있습니다.
https://developers.naver.com/docs/login/api/api.md
네이버 로그인 API에서 회원인증이 되면 발급받은 접근 토큰으로 로그인이 필요한 다른 네이버 오픈 API를 호출할 수 있다. API를 이용하기 위해서는 오픈API 이용신청하고 앱을 등록해야한다.
국립중앙도서관에서 운영하는 오픈 API 인데, 전국 도서관 인기대출자료, 도서관 현황 등을 불러올 수 있다. 도서 관련 정보를 제공할 때 유용하게 사용하고 있다.
(하나 아쉬운 점은... 정보 업데이트를 자동으로 하는게 아니라 도서관 주소 같은 부분은 사람이 일일이 하는 것 같아서...실제 정보와 다른 것도 간혹 있다는 것...)
https://www.data4library.kr/apiUtilization
하나만 예로 들자면, 인기대출도서를 조회할 수 있다.
이렇게 친절히 문서가 나와있다. 발급받은 키를 넣고 검색 조건 선택하고 얼만큼씩 불러올 것인지, 응답 유형은 어떻게 할 것인지 입력해서 호출하면 응답을 받을 수 있다.
OPEN API 하나만 골라서 자세히 살펴보자.
네이버 지도 앱 URL Scheme을 사용하면 외부 앱이나 웹 페이지에서 네이버 지도 앱을 실행해 장소 표시, 검색, 길찾기, 내비게이션 등 다양한 지도 기능을 수행할 수 있다.
지도 위에 장소를 직접 표시해야 하는 경우나, 아니면 다른 API를 사용하기 위해서 장소의 좌표가 필요하다.
그 경우 주소를 좌표로 변환해주는 기능이 필요한데, 네이버 지도 GEOCODING API를 활용할 수 있다.
https://api.ncloud-docs.com/docs/ai-naver-mapsgeocoding
Geocoding은 주소의 텍스트를 입력받아 좌표를 포함한 상세정보들을 제공한다.
API를 호출하기에 앞서 다음과 같은 세팅과정이 필요하다.
애플리케이션 등록으로 클라이언트 ID와 Secret 값을 받아야 한다. (응답 형식은 JSON. 간혹 공공데이터 OPEN API 중에 XML로만 응답을 주는 곳도 있었다. 아래에 비교 글 참고)
오류 코드 목록도 있다. 오류가 발생하면 API는 오류코드를 띄워주는데, 이 표를 통해 어떤 오류가 발생했는지 확인할 수 있다.
curl -G "https://naveropenapi.apigw.ntruss.com/map-geocode/v2/geocode" \
--data-urlencode "query=분당구 불정로 6" \
--data-urlencode "coordinate=127.1054328,37.3595963" \
-H "X-NCP-APIGW-API-KEY-ID: {애플리케이션 등록 시 발급받은 client id값}" \
-H "X-NCP-APIGW-API-KEY: {애플리케이션 등록 시 발급받은 client secret값}" -v
위와 같은 형식으로 서버에 요청한다.
파라미터와 헤더에 대한 설명을 참고해야한다.
다음과 같은 응답을 받을 수 있다. 각 파라미터(?)에 대한 설명은 아래 표를 참조한다.
{
"status": "OK",
"meta": {
"totalCount": 1,
"page": 1,
"count": 1
},
"addresses": [
{
"roadAddress": "경기도 성남시 분당구 불정로 6 그린팩토리",
"jibunAddress": "경기도 성남시 분당구 정자동 178-1 그린팩토리",
"englishAddress": "6, Buljeong-ro, Bundang-gu, Seongnam-si, Gyeonggi-do, Republic of Korea",
"addressElements": [
{
"types": [
"POSTAL_CODE"
],
"longName": "13561",
"shortName": "",
"code": ""
}
],
"x": "127.10522081658463",
"y": "37.35951219616309",
"distance": 20.925857741585514
}
],
"errorMessage": ""
}
[코드스테이츠 PMB 11기] 스크럼 이해하기 (0) | 2022.05.03 |
---|---|
[코드스테이츠 PMB 11기] 프로덕트 구조 다시보기 (0) | 2022.04.28 |
[코드스테이츠 PMB 11기] 앱의 4가지 형태 (0) | 2022.04.26 |
[코드스테이츠 PMB 11기] 랜딩페이지 살펴보기 (0) | 2022.04.26 |
[코드스테이츠 PMB 11기] 데이터 시각화 연습 (0) | 2022.04.22 |
댓글 영역