•
감귤마켓에서 변경 내용만 서술했습니다. 자세한 내용은 감귤마켓 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) ⇒