/////
Search
🗒️

SPPORT API 명세

감귤마켓에서 변경 내용만 서술했습니다. 자세한 내용은 감귤마켓 API 명세를 참고해주시면 됩니다.

test account info

main test

"user": { "_id": "648925ffb2cb20566333cf83", "username": "스포트", "email": "spport@test.com", "password": "spport123", "accountname": "spport_best", "intro": "야구,축구,배구", "image": "https://api.mandarin.weniv.co.kr/1686710360745.png" }
JavaScript
복사
토큰 정보
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0ODkyNWZmYjJjYjIwNTY2MzMzY2Y4MyIsImV4cCI6MTY5MTg5NDU0MCwiaWF0IjoxNjg2NzEwNTQwfQ.CMVKaojlNSWLjmtbZ_AY6shkkStQgp1DHP3z87oIPe8", "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2ODY3MTA1NDAsImV4cCI6MTY4NzkyMDE0MH0.q3n9suFWyGV9qjs0aUl1jm6KrMMzvsR6P46zBv2QOA4"
JavaScript
복사

sub test (일반 포스트/검색 확인용)

"user": { "_id": "64894ccbb2cb20566333e786", "username": "온리 라이온즈", "email": "only_lions@test.com", "password": "only_lions123", "accountname": "only_lions", "intro": "야구,삼성 라이온즈", "image": "https://api.mandarin.weniv.co.kr/1686710360745.png" }
JavaScript
복사
토큰 정보
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0ODk0Y2NiYjJjYjIwNTY2MzMzZTc4NiIsImV4cCI6MTY5MTkwMzcwOSwiaWF0IjoxNjg2NzE5NzA5fQ.apn1QdPEtM8a0tYRIibKqE9jlUS6DNqep6WEsPNErIw", "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2ODY3MTk3MDksImV4cCI6MTY4NzkyOTMwOX0.rXat4Psw2Gg9s5-_uSDA4L9_hbT8BIwIAyQtNMn5QY8"
JavaScript
복사
post image
https://api.mandarin.weniv.co.kr/1686720901199.png
JavaScript
복사

회원가입

Req
{ "user": { "username": String*, "email": String*, "password": String*, "accountname": String*, "intro": String, "image": String // 예시) https://api.mandarin.weniv.co.kr/1641906557953.png } }
JavaScript
복사

일반 유저

accountname
앞에 “SPORT_”가 들어갈 수 없습니다. (팀 유저 예약 아이디)
스포츠팀의 이름을 쓸 수 없습니다
스포츠팀들은 앞의 SPORT_TYPE_을 사용하고 있으므로 서버 자체에서 중복 검사를 안해주니 자체적으로 중복검사를 해주셔야 합니다.
intro ⇒ 자기소개대신 관심사가 들어갑니다.
관심사는 String으로 (,)로 분리해서 저장합니다.
input 방법은 자유롭게 선택하시면 될 것 같습니다.
가장 쉬운 방법은 제가 피그마에 적은대로 사용자에게 (,)로 분리해서 작성해달라고 하는 것인 것 같습니다.
“야구,축구,삼성”
받아올 때는 (,)를 기준으로 parse해서 사용하시면 됩니다.
image ⇒ 유저가 image를 따로 넣지 않았을 경우 아래의 이미지를 넣습니다.
https://api.mandarin.weniv.co.kr/1686710360745.png

팀 유저

팀 정보 데이터 구성
[ { "id": "SSG", "ko_name": "SSG 랜더스", "en_name": "ssg_landers", "image": "https://api.mandarin.weniv.co.kr/1686717220591.png", "hometown": "인천", "stadium": "인천 SSG 랜더스필드", "director": "김원형" }, ... ]
JavaScript
복사
필수되는 것을 어쩔 수 없이 넣긴 하지만 로그인이 됐을시를 생각하지 않아도 됩니다.
username ⇒ ko_name (SSG 랜더스)
email ⇒ en_name@sport.com (ssg_landers@sport.com)
password ⇒ en_name + 123 (ssg_lander123)
accountname ⇒ “SPORT_” + type + “_” + en_name (SPORT_BS_ssg_landers)
intro ⇒ “hometown,director,stadium” (인천,김원형,인천 SSG 랜더스필드)
String 형태로 (,)로 분리해서 intro에 저장합니다.
위의 순서대로 넣습니다.

게시글 작성 (경기 일정 정보 관련)

Req
{ "post": { "content": String, "image": String //"imageurl1, imageurl2" 형식으로 } }
JavaScript
복사
경기 일정 정보 구성
[ { "date": "2023-06-01", "day": "목", "time": "18:30", "home": "LG", "away": "롯데", "stadium": "잠실", "full_stadium": "서울종합운동장 야구장", "en_city": "Seoul" }, ... ]
JavaScript
복사
content ⇒ “date, day, time, home, away, stadium, full_stadium, en_city”
모든 정보를 (,)로 분리해서 content에 저장합니다. (띄어쓰기 없습니다)
위의 순서대로 넣습니다.
image ⇒ 날씨 정보
미래의 게임일시 빈 문자열

팔로잉 게시글 목록 (경기 일정 정보 관련)

게임 피드

Res
{ "posts": [ { "id": String, "content": "06.01,목,18:30,LG,롯데,잠실,서울종합운동장 야구장", "image": "2023-06-01 8:00:00", "createdAt": String, "updatedAt": String, "hearted": false, "heartCount": 0, "commentCount": 0, "author": { "_id": "ssg_landers@sport.com", "username": "SSG 랜더스", "accountname": "SPORT_BS_ssg_landers", "following": [], "follower": [ "follower id" ], "followerCount": 1, "followingCount": 0 } } ] }
JavaScript
복사
author.accountname이 “SPORT_”로 시작할 시 GamePost
image에 저장된 date 정보가 오늘 또는 오늘 이전일 경우만 피드에 보여줍니다.
post.content를 (,)로 parse해서 game 객체에 저장해 props로 넘겨줍니다.
전체 피드일때 일반 포스트의 createdAt과 게임 포스트의 image에 저장된 date 정보를 비교해서 sort하셔야 합니다.
gamepost들은 그 날의 아침 8시라고 생각하시고 정렬하면 됩니다.

일정 추가 페이지

팔로잉 게시글 중 author.accountname이 “SPORT_”로 시작한 것을 모두 가져옵니다.

나의 게시글 목록 (팀 프로필 안 경기 일정)

hearted: true ⇒ 취소
hearted: false ⇒ 추가

좋아요 (경기 일정 정보 관련)

경기 일정 추가

해당 포스트에 좋아요를 누를 시 상품 등록이 됩니다
{ "product":{ "itemName": String, "price": Number,//1원 이상 "link": String, "itemImage": String } }
JavaScript
복사
itemName ⇒ “date, day, time, home, away, stadium, full_stadium, en_city”
link ⇒ post_id
itemImage ⇒ post.author.image

프로필 안 직관 경기 일정

좋아요를 누른 포스트만 가져오는 API가 없으므로 팔로잉 게시글 목록 중 2가지를 확인합니다.
author.accountname이 “SPORT_”로 시작
"hearted": true
두 가지 전부 해당 될 시만 직관 경기 일정 리스트에 보여줍니다.
게임 좋아요 ⇒ 게임 포스트 좋아요, 상품 등록 ⇒ 게임 수정 (image + product_id) ⇒