hegunhee/NowInJururu

API 명세 및 비즈니스 로직

Opened this issue · 0 comments

api 명세

https://id.twitch.tv/oauth2/token : AuthToken 을 가져오는 endPoint (clientId, clientSecret, grant_type)

이 밑의 endPoint는 token값과 client-id가 헤더로 필요함
https://api.twitch.tv/helix/streams : 현재 스트리머의 방송 정보를 가져오는 endPoint ( user_login값 필요 ex) cotton__123)
https://api.twitch.tv/helix/users : user_login값을 배경으로 특정 스트리머의 정보를 가져오는 endPoint ( login값 필요)
https://api.twitch.tv/helix/search/channels : 유저 이름을 배경으로 검색된 스트리머의 정보를 가져오는 endPoint (query값으로 이름을 입력)

통상적으로 user_login 값보다는 이름을 알고있기때문에
channels endPoint로 user_login값을 로컬 데이터베이스에 저장하고
해당 스트리머의 방송 정보를 가져올때는 user_login값으로 streams endPoint를 사용함
ex) user_login = cotton__123, name = 주르르

Json에서 변경된 변수명

스트리머 id값의 경우 Json에서는
broadcaster_login 혹은 xx_login값으로 전달되는데
해당 이름은 직관적이지 않다고 생각해
streamer_id로 변경
streamer_id = cotton__123
streamer_name = 주르르

비즈니스 로직

크게 스트리머 검색, 스트리머 저장, 해당 스트리머 방송 정보 불러오기로 나뉨

스트리머 검색
우리가 평상시 알고있는 이름으로 스트리머를 검색
해당 이름이 들어간 스트리머가 모두 보여짐(팔로워 순)

스트리머 저장
특정 스트리머를 저장한다면 스트리머의 user_login값이 로컬db에 저장됨

스트리머 방송 정보 불러오기
로컬 db에 저장되어있는 user_login값을 모두 불러와
streams endPoint로 user_login값을 기준으로 방송 정보를 불러옴
불러오기 성공일경우 방송 정보 List가 만들어짐
불러오기 실패의 경우 스트리머 정보 List가 만들어짐
만약 저장되어있는 스트리머가 없다면 emptyStreamerList가 만들어짐

만약 방송정보 리스트를 받아야한다면
저장되어있는 스트리머 정보 불러오기 ->
(성공) 스트리머 방송 정보를 불러옴 -> 방송중이라면 방송정보 값, 방송중이 아니라면 스트리머 정보값이 내려옴
(저장되어있는 스트리머가 없을경우) -> 빈 리스트가 내려옴