1. 쓰앵님 팀원
-
프론트 - 신승구, 김민경, 유영민
-
백엔드 - 김다은, 이수영, 강호수
2. Auth
2.1. 로그인 상태 조회 - OK
-
로그인 상태 조회 - OK
GET /auth/verify-user HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6InRlc3RAdGVzdC5jb20iLCJzdWIiOiJ0ZXN0QHRlc3QuY29tIiwiaWF0IjoxNjgyMzgyNjcyLCJleHAiOjE2ODIzODM1NzJ9.tHFOM6DF-AZv1ecYXa982UnShYkwstDFpnPtLnreha4
Accept: application/json
Host: localhost:8080
Name | Description |
---|---|
|
AccessToken |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
2.2. 로그인 상태 조회 - AccessToken 만료
GET /auth/verify-user HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6InRlc3RAdGVzdC5jb20iLCJzdWIiOiJ0ZXN0QHRlc3QuY29tIiwiaWF0IjoxNjgyMzgyNjcyLCJleHAiOjE2ODIzODI2NzJ9.eqvDx6SzDtnPhLCGtyU92dbpcqBzpYOeTPSoparAuRs
Accept: application/json
Host: localhost:8080
Name | Description |
---|---|
|
AccessToken |
HTTP/1.1 403 Forbidden
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 110
{
"status" : 403,
"message" : "EXPIRED ACCESS TOKEN",
"fieldErrors" : null,
"violationErrors" : null
}
{
"status" : 403,
"message" : "EXPIRED ACCESS TOKEN",
"fieldErrors" : null,
"violationErrors" : null
}
Path | Type | Description |
---|---|---|
|
|
ErrorCode |
|
|
ErrorMessage |
|
|
fieldErrors |
|
|
violationErrors |
2.3. 토큰 재발급 - OK
GET /auth/reissue-token/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
회원 식별자 |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJyb2xlcyI6WyJVU0VSIl0sInVzZXJuYW1lIjoidGVzdEB0ZXN0LmNvbSIsInN1YiI6InRlc3RAdGVzdC5jb20iLCJpYXQiOjE2ODIzODI2NzEsImV4cCI6MTY4MjM4MzU3MX0.kPoP33OnCIlgICfwRMbkyl6wTBnzMkyv8WGhyEnvM9c
userStatus: TUTOR
userId: 1
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 277
{
"userId" : "1",
"userStatus" : "TUTOR",
"authorization" : "Bearer eyJhbGciOiJIUzI1NiJ9.eyJyb2xlcyI6WyJVU0VSIl0sInVzZXJuYW1lIjoidGVzdEB0ZXN0LmNvbSIsInN1YiI6InRlc3RAdGVzdC5jb20iLCJpYXQiOjE2ODIzODI2NzEsImV4cCI6MTY4MjM4MzU3MX0.kPoP33OnCIlgICfwRMbkyl6wTBnzMkyv8WGhyEnvM9c"
}
{
"userId" : "1",
"userStatus" : "TUTOR",
"authorization" : "Bearer eyJhbGciOiJIUzI1NiJ9.eyJyb2xlcyI6WyJVU0VSIl0sInVzZXJuYW1lIjoidGVzdEB0ZXN0LmNvbSIsInN1YiI6InRlc3RAdGVzdC5jb20iLCJpYXQiOjE2ODIzODI2NzEsImV4cCI6MTY4MjM4MzU3MX0.kPoP33OnCIlgICfwRMbkyl6wTBnzMkyv8WGhyEnvM9c"
}
Path | Type | Description |
---|---|---|
|
|
AccessToken |
|
|
회원 식별자 |
|
|
회원 타입 |
2.4. 토큰 재발급 - RefreshToken 만료
GET /auth/reissue-token/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
회원 식별자 |
HTTP/1.1 401 Unauthorized
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 111
{
"status" : 401,
"message" : "EXPIRED REFRESH TOKEN",
"fieldErrors" : null,
"violationErrors" : null
}
{
"status" : 401,
"message" : "EXPIRED REFRESH TOKEN",
"fieldErrors" : null,
"violationErrors" : null
}
Path | Type | Description |
---|---|---|
|
|
ErrorCode |
|
|
ErrorMessage |
|
|
fieldErrors |
|
|
violationErrors |
2.5. 로그아웃 - OK
GET /auth/logout HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6InRlc3RAdGVzdC5jb20iLCJzdWIiOiJ0ZXN0QHRlc3QuY29tIiwiaWF0IjoxNjgyMzgyNjcxLCJleHAiOjE2ODIzODM1NzF9.RQuzLBgxzff9ltYZ5zBWDk_Z9XdwbulnC4FB0gdtuUA
Accept: application/json
Host: localhost:8080
Name | Description |
---|---|
|
AccessToken |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
2.6. 2차 비밀번호 검증 - OK
POST /auth/verify-second-password/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6InRlc3RAdGVzdC5jb20iLCJzdWIiOiJ0ZXN0QHRlc3QuY29tIiwiaWF0IjoxNjgyMzgyNjcyLCJleHAiOjE2ODIzODM1NzJ9.tHFOM6DF-AZv1ecYXa982UnShYkwstDFpnPtLnreha4
Accept: application/json
Content-Length: 31
Host: localhost:8080
{
"secondPassword" : "1234"
}
Name | Description |
---|---|
|
AccessToken |
{
"secondPassword" : "1234"
}
Parameter | Description |
---|---|
|
회원 식별자 |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
2.7. 2차 비밀번호 검증 - 잘못된 2차 비밀번호
POST /auth/verify-second-password/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6InRlc3RAdGVzdC5jb20iLCJzdWIiOiJ0ZXN0QHRlc3QuY29tIiwiaWF0IjoxNjgyMzgyNjcyLCJleHAiOjE2ODIzODM1NzJ9.tHFOM6DF-AZv1ecYXa982UnShYkwstDFpnPtLnreha4
Accept: application/json
Content-Length: 31
Host: localhost:8080
{
"secondPassword" : "1234"
}
Name | Description |
---|---|
|
AccessToken |
{
"secondPassword" : "1234"
}
Parameter | Description |
---|---|
|
회원 식별자 |
HTTP/1.1 403 Forbidden
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 111
{
"status" : 403,
"message" : "WRONG SECOND PASSWORD",
"fieldErrors" : null,
"violationErrors" : null
}
{
"status" : 403,
"message" : "WRONG SECOND PASSWORD",
"fieldErrors" : null,
"violationErrors" : null
}
Path | Type | Description |
---|---|---|
|
|
ErrorCode |
|
|
ErrorMessage |
|
|
fieldErrors |
|
|
violationErrors |
3. User
3.1. 회원 정보 조회
GET /users/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Host: localhost:8080
Name | Description |
---|---|
|
AccessToken |
Parameter | Description |
---|---|
|
회원 식별자 |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 283
{
"data" : {
"userId" : 1,
"email" : "test@test.com",
"nickName" : "수포자",
"phoneNumber" : "01012345678",
"loginType" : "SOCIAL",
"userStatus" : "TUTOR",
"createAt" : "2023-04-25T00:31:19.241308",
"updateAt" : "2023-04-25T00:31:19.241309"
}
}
{
"data" : {
"userId" : 1,
"email" : "test@test.com",
"nickName" : "수포자",
"phoneNumber" : "01012345678",
"loginType" : "SOCIAL",
"userStatus" : "TUTOR",
"createAt" : "2023-04-25T00:31:19.241308",
"updateAt" : "2023-04-25T00:31:19.241309"
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
회원 식별자 |
|
|
회원 이메일 |
|
|
회원 닉네임 |
|
|
회원 폰번호 |
|
|
로그인 타입 |
|
|
회원 상태 TUTOR/TUTEE/NONE |
|
|
생성 시간 |
|
|
최종 수정 시간 |
3.2. 회원 생성
POST /users HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 86
Host: localhost:8080
{
"nickName" : "수포자",
"email" : "test@test.com",
"password" : "aaaa1234"
}
{
"nickName" : "수포자",
"email" : "test@test.com",
"password" : "aaaa1234"
}
Path | Type | Description |
---|---|---|
|
|
회원 닉네임 |
|
|
회원 이메일 |
|
|
회원 비밀번호 문자+숫자 8자리 이상 |
HTTP/1.1 201 Created
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 283
{
"data" : {
"userId" : 1,
"email" : "test@test.com",
"nickName" : "수포자",
"phoneNumber" : "01012345678",
"loginType" : "SOCIAL",
"userStatus" : "TUTOR",
"createAt" : "2023-04-25T00:31:19.273202",
"updateAt" : "2023-04-25T00:31:19.273202"
}
}
{
"data" : {
"userId" : 1,
"email" : "test@test.com",
"nickName" : "수포자",
"phoneNumber" : "01012345678",
"loginType" : "SOCIAL",
"userStatus" : "TUTOR",
"createAt" : "2023-04-25T00:31:19.273202",
"updateAt" : "2023-04-25T00:31:19.273202"
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
회원 식별자 |
|
|
회원 이메일 |
|
|
회원 닉네임 |
|
|
회원 폰번호 |
|
|
로그인 타입 |
|
|
회원 상태 TUTOR/TUTEE/NONE |
|
|
생성 시간 |
|
|
최종 수정 시간 |
3.3. 회원 정보 수정
PATCH /users/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Content-Length: 140
Host: localhost:8080
{
"nickName" : "test",
"password" : "aaaa1234",
"phoneNumber" : "01055550000",
"secondPassword" : "1234",
"userStatus" : "TUTOR"
}
Parameter | Description |
---|---|
|
회원 식별자 |
Name | Description |
---|---|
|
AccessToken |
{
"nickName" : "test",
"password" : "aaaa1234",
"phoneNumber" : "01055550000",
"secondPassword" : "1234",
"userStatus" : "TUTOR"
}
Path | Type | Description |
---|---|---|
|
|
회원 닉네임 |
|
|
회원 비밀번호 문자+숫자 8자리 이상 |
|
|
회원 휴대폰 번호 '-'없이 11자리 숫자 |
|
|
회원 2차 비밀번호 |
|
|
회원 상태 TUTOR/TUTEE |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 283
{
"data" : {
"userId" : 1,
"email" : "test@test.com",
"nickName" : "수포자",
"phoneNumber" : "01012345678",
"loginType" : "SOCIAL",
"userStatus" : "TUTOR",
"createAt" : "2023-04-25T00:31:19.160628",
"updateAt" : "2023-04-25T00:31:19.160631"
}
}
{
"data" : {
"userId" : 1,
"email" : "test@test.com",
"nickName" : "수포자",
"phoneNumber" : "01012345678",
"loginType" : "SOCIAL",
"userStatus" : "TUTOR",
"createAt" : "2023-04-25T00:31:19.160628",
"updateAt" : "2023-04-25T00:31:19.160631"
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
회원 식별자 |
|
|
회원 이메일 |
|
|
회원 닉네임 |
|
|
회원 폰번호 |
|
|
로그인 타입 |
|
|
회원 상태 TUTOR/TUTEE/NONE |
|
|
생성 시간 |
|
|
최종 수정 시간 |
3.4. 튜터 프로필 전체 조회 및 검색
GET /users/tutors?page=0&sort=rate&search=test&subject=%EC%88%98%ED%95%99 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
정렬 조건 rate/updateAt |
|
요청 페이지 |
|
검색 키워드(프로필 이름, 한줄소개 등 세부 정보 검색) |
|
튜터, 튜티의 과목 ex.'수학,과학' |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 952
{
"data" : [ {
"profileId" : 1,
"name" : "어때요",
"rate" : 4.5,
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "수학"
}, {
"subjectId" : 1,
"subjectTitle" : "수학"
}, {
"subjectId" : 1,
"subjectTitle" : "수학"
} ],
"school" : "MIT",
"bio" : "대치동 원탑 수학 머신",
"profileImage" : {
"profileImageId" : 1,
"url" : "https://www.google.com/url?sa=i&url=http%3A%2F%2Fm.blog.naver.com%2Fcjswodnajs%2F222138892587&psig=AOvVaw0Ef_d9Jqh-dQm9Q7RRDiIg&ust=1673341195393000&source=images&cd=vfe&ved=0CA8QjRxqFwoTCMjWyO2PuvwCFQAAAAAdAAAAABAE",
"createAt" : "2023-04-25T00:31:19.366429",
"updateAt" : "2023-04-25T00:31:19.366433"
},
"createAt" : "2023-04-25T00:31:19.366435",
"updateAt" : "2023-04-25T00:31:19.366436"
} ],
"pageInfo" : {
"page" : 0,
"size" : 20,
"totalElements" : 1,
"totalPages" : 1
}
}
{
"data" : [ {
"profileId" : 1,
"name" : "어때요",
"rate" : 4.5,
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "수학"
}, {
"subjectId" : 1,
"subjectTitle" : "수학"
}, {
"subjectId" : 1,
"subjectTitle" : "수학"
} ],
"school" : "MIT",
"bio" : "대치동 원탑 수학 머신",
"profileImage" : {
"profileImageId" : 1,
"url" : "https://www.google.com/url?sa=i&url=http%3A%2F%2Fm.blog.naver.com%2Fcjswodnajs%2F222138892587&psig=AOvVaw0Ef_d9Jqh-dQm9Q7RRDiIg&ust=1673341195393000&source=images&cd=vfe&ved=0CA8QjRxqFwoTCMjWyO2PuvwCFQAAAAAdAAAAABAE",
"createAt" : "2023-04-25T00:31:19.366429",
"updateAt" : "2023-04-25T00:31:19.366433"
},
"createAt" : "2023-04-25T00:31:19.366435",
"updateAt" : "2023-04-25T00:31:19.366436"
} ],
"pageInfo" : {
"page" : 0,
"size" : 20,
"totalElements" : 1,
"totalPages" : 1
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
프로필 식별자 |
|
|
프로필 이름 |
|
|
평균 별점 |
|
|
과목 리스트 |
|
|
과목 식별자 |
|
|
과목 명 |
|
|
학교 |
|
|
한줄 소개 |
|
|
프로필 이미지 |
|
|
프로필 이미지 식별자 |
|
|
이미지 URL |
|
|
프로필 이미지 생성 시각 |
|
|
프로필 이미지 수정 시각 |
|
|
프로필 생성 시각 |
|
|
프로필 최종 수정 시각 |
|
|
요청 페이지 정보 |
|
|
요청 페이지 - 0 = 1 페이지 |
|
|
페이지당 요청 회원 |
|
|
총 멤버 |
|
|
생성된 총 페이지 |
3.5. 튜티 프로필 전체 조회 및 검색
GET /users/tutees?page=0&sort=rate&search=test&subject=%EC%88%98%ED%95%99 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
정렬 조건 rate/updateAt |
|
요청 페이지 |
|
검색 키워드(프로필 이름, 한줄소개 등 세부 정보 검색) |
|
튜터, 튜티의 과목 ex.'수학,과학' |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 952
{
"data" : [ {
"profileId" : 1,
"name" : "어때요",
"rate" : 4.5,
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "수학"
}, {
"subjectId" : 1,
"subjectTitle" : "수학"
}, {
"subjectId" : 1,
"subjectTitle" : "수학"
} ],
"school" : "MIT",
"bio" : "대치동 원탑 수학 머신",
"profileImage" : {
"profileImageId" : 1,
"url" : "https://www.google.com/url?sa=i&url=http%3A%2F%2Fm.blog.naver.com%2Fcjswodnajs%2F222138892587&psig=AOvVaw0Ef_d9Jqh-dQm9Q7RRDiIg&ust=1673341195393000&source=images&cd=vfe&ved=0CA8QjRxqFwoTCMjWyO2PuvwCFQAAAAAdAAAAABAE",
"createAt" : "2023-04-25T00:31:19.308037",
"updateAt" : "2023-04-25T00:31:19.308041"
},
"createAt" : "2023-04-25T00:31:19.308043",
"updateAt" : "2023-04-25T00:31:19.308044"
} ],
"pageInfo" : {
"page" : 0,
"size" : 20,
"totalElements" : 1,
"totalPages" : 1
}
}
{
"data" : [ {
"profileId" : 1,
"name" : "어때요",
"rate" : 4.5,
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "수학"
}, {
"subjectId" : 1,
"subjectTitle" : "수학"
}, {
"subjectId" : 1,
"subjectTitle" : "수학"
} ],
"school" : "MIT",
"bio" : "대치동 원탑 수학 머신",
"profileImage" : {
"profileImageId" : 1,
"url" : "https://www.google.com/url?sa=i&url=http%3A%2F%2Fm.blog.naver.com%2Fcjswodnajs%2F222138892587&psig=AOvVaw0Ef_d9Jqh-dQm9Q7RRDiIg&ust=1673341195393000&source=images&cd=vfe&ved=0CA8QjRxqFwoTCMjWyO2PuvwCFQAAAAAdAAAAABAE",
"createAt" : "2023-04-25T00:31:19.308037",
"updateAt" : "2023-04-25T00:31:19.308041"
},
"createAt" : "2023-04-25T00:31:19.308043",
"updateAt" : "2023-04-25T00:31:19.308044"
} ],
"pageInfo" : {
"page" : 0,
"size" : 20,
"totalElements" : 1,
"totalPages" : 1
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
프로필 식별자 |
|
|
프로필 이름 |
|
|
평균 별점 |
|
|
과목 리스트 |
|
|
과목 식별자 |
|
|
과목 명 |
|
|
학교 |
|
|
한줄 소개 |
|
|
프로필 이미지 |
|
|
프로필 이미지 식별자 |
|
|
이미지 URL |
|
|
프로필 이미지 생성 시각 |
|
|
프로필 이미지 수정 시각 |
|
|
프로필 생성 시각 |
|
|
프로필 최종 수정 시각 |
|
|
요청 페이지 정보 |
|
|
요청 페이지 - 0 = 1 페이지 |
|
|
페이지당 요청 회원 |
|
|
총 멤버 |
|
|
생성된 총 페이지 |
3.6. 회원 삭제
DELETE /users/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
회원 식별자 |
Name | Description |
---|---|
|
AccessToken |
HTTP/1.1 204 No Content
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
4. Profile
4.1. 특정 회원 프로필 전체 조회
GET /profiles/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Host: localhost:8080
Name | Description |
---|---|
|
AccessToken |
Parameter | Description |
---|---|
|
회원 식별자 |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 348
{
"data" : [ {
"profileId" : 1,
"name" : "어때요",
"url" : "https://www.google.com/url?sa=i&url=http%3A%2F%2Fm.blog.naver.com%2Fcjswodnajs%2F222138892587&psig=AOvVaw0Ef_d9Jqh-dQm9Q7RRDiIg&ust=1673341195393000&source=images&cd=vfe&ved=0CA8QjRxqFwoTCMjWyO2PuvwCFQAAAAAdAAAAABAE",
"school" : "서운대 철학과 17학번"
} ]
}
{
"data" : [ {
"profileId" : 1,
"name" : "어때요",
"url" : "https://www.google.com/url?sa=i&url=http%3A%2F%2Fm.blog.naver.com%2Fcjswodnajs%2F222138892587&psig=AOvVaw0Ef_d9Jqh-dQm9Q7RRDiIg&ust=1673341195393000&source=images&cd=vfe&ved=0CA8QjRxqFwoTCMjWyO2PuvwCFQAAAAAdAAAAABAE",
"school" : "서운대 철학과 17학번"
} ]
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
프로필 식별자 |
|
|
프로필 이름 |
|
|
프로필 이미지 URL |
|
|
학교 정보 |
4.2. 특정 프로필 조회
GET /profiles/details/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
프로필 식별자 |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1702
{
"data" : {
"profileId" : 1,
"name" : "test",
"rate" : 3.5,
"bio" : "test",
"school" : "test",
"wantedStatus" : "REQUEST",
"profileStatus" : "TUTOR",
"way" : "test",
"character" : "test",
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test",
"createAt" : "2023-04-25T00:31:16.267785",
"updateAt" : "2023-04-25T00:31:16.267789"
}, {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test",
"createAt" : "2023-04-25T00:31:16.26776",
"updateAt" : "2023-04-25T00:31:16.267777"
} ],
"difference" : "test",
"gender" : "test",
"pay" : "test",
"wantDate" : "test",
"preTutoring" : "test",
"profileImage" : {
"profileImageId" : 1,
"url" : "test",
"createAt" : "2023-04-25T00:31:16.267819",
"updateAt" : "2023-04-25T00:31:16.267823"
},
"createAt" : "2023-04-25T00:31:16.267828",
"updateAt" : "2023-04-25T00:31:16.267831",
"reviews" : [ {
"reviewId" : 1,
"professional" : 4,
"readiness" : 5,
"explanation" : 5,
"punctuality" : 4,
"reviewBody" : "test",
"tuteeName" : "test",
"createAt" : "2023-04-25T00:31:16.26781",
"updateAt" : "2023-04-25T00:31:16.267813"
}, {
"reviewId" : 1,
"professional" : 4,
"readiness" : 5,
"explanation" : 5,
"punctuality" : 4,
"reviewBody" : "test",
"tuteeName" : "test",
"createAt" : "2023-04-25T00:31:16.2678",
"updateAt" : "2023-04-25T00:31:16.267804"
} ]
},
"pageInfo" : {
"page" : 1,
"size" : 5,
"totalElements" : 7,
"totalPages" : 2
}
}
{
"data" : {
"profileId" : 1,
"name" : "test",
"rate" : 3.5,
"bio" : "test",
"school" : "test",
"wantedStatus" : "REQUEST",
"profileStatus" : "TUTOR",
"way" : "test",
"character" : "test",
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test",
"createAt" : "2023-04-25T00:31:16.267785",
"updateAt" : "2023-04-25T00:31:16.267789"
}, {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test",
"createAt" : "2023-04-25T00:31:16.26776",
"updateAt" : "2023-04-25T00:31:16.267777"
} ],
"difference" : "test",
"gender" : "test",
"pay" : "test",
"wantDate" : "test",
"preTutoring" : "test",
"profileImage" : {
"profileImageId" : 1,
"url" : "test",
"createAt" : "2023-04-25T00:31:16.267819",
"updateAt" : "2023-04-25T00:31:16.267823"
},
"createAt" : "2023-04-25T00:31:16.267828",
"updateAt" : "2023-04-25T00:31:16.267831",
"reviews" : [ {
"reviewId" : 1,
"professional" : 4,
"readiness" : 5,
"explanation" : 5,
"punctuality" : 4,
"reviewBody" : "test",
"tuteeName" : "test",
"createAt" : "2023-04-25T00:31:16.26781",
"updateAt" : "2023-04-25T00:31:16.267813"
}, {
"reviewId" : 1,
"professional" : 4,
"readiness" : 5,
"explanation" : 5,
"punctuality" : 4,
"reviewBody" : "test",
"tuteeName" : "test",
"createAt" : "2023-04-25T00:31:16.2678",
"updateAt" : "2023-04-25T00:31:16.267804"
} ]
},
"pageInfo" : {
"page" : 1,
"size" : 5,
"totalElements" : 7,
"totalPages" : 2
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
프로필 식별자 |
|
|
프로필 이름 |
|
|
별점 평균 |
|
|
한줄 소개 |
|
|
학교 정보 |
|
|
공고 상태 NONE/BASIC/REQUEST |
|
|
프로필 상태 TUTOR/TUTEE |
|
|
수업 방식 또는 원하는 방식 |
|
|
성격 |
|
|
과목 |
|
|
과목 식별자 |
|
|
과목 타이틀 |
|
|
과목 수업 내용 |
|
|
과목 생성 시각 |
|
|
과목 최종 수정 시각 |
|
|
차별점 |
|
|
성별 |
|
|
수업료 또는 원하는 수업료 |
|
|
원하는 날짜 |
|
|
사전 과외 가능 여부 |
|
|
프로필 이미지 정보 |
|
|
프로필 이미지 식별자 |
|
|
프로필 이미지 URL |
|
|
프로필 이미지 생성 시각 |
|
|
프로필 이미지 최종 수정 시각 |
|
|
프로필 생성 시각 |
|
|
프로필 최종 생성 시각 |
|
|
프로필 리뷰 리스트(튜터일때) |
|
|
후기 식별자 |
|
|
전문성 별점 |
|
|
준비성 별점 |
|
|
수업 설명 별점 |
|
|
시간 준수 별점 |
|
|
후기 내용 |
|
|
후기 작성자(튜티) |
|
|
후기 생성 시각 |
|
|
후기 최종 수정 시각 |
|
|
요청 페이지 정보 |
|
|
요청 페이지 - 0 = 1 페이지 |
|
|
페이지당 요청 회원 |
|
|
총 멤버 |
|
|
생성된 총 페이지 |
4.3. 프로필 생성
POST /profiles/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Content-Length: 454
Host: localhost:8080
{
"name" : "수포자",
"bio" : "잘찍습니다",
"school" : "고고고",
"way" : "잘합니다",
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test"
}, {
"subjectId" : 2,
"subjectTitle" : "test",
"content" : "test"
} ],
"difference" : "할쑤이ㅅ써",
"gender" : "남여",
"character" : "소심함",
"pay" : "비싸다",
"wantDate" : "7/7 9 to 9",
"preTutoring" : "안됨"
}
Parameter | Description |
---|---|
|
회원 식별자 |
Name | Description |
---|---|
|
AccessToken |
{
"name" : "수포자",
"bio" : "잘찍습니다",
"school" : "고고고",
"way" : "잘합니다",
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test"
}, {
"subjectId" : 2,
"subjectTitle" : "test",
"content" : "test"
} ],
"difference" : "할쑤이ㅅ써",
"gender" : "남여",
"character" : "소심함",
"pay" : "비싸다",
"wantDate" : "7/7 9 to 9",
"preTutoring" : "안됨"
}
Path | Type | Description |
---|---|---|
|
|
프로필 이름 |
|
|
한줄 소개 |
|
|
학교 정보 |
|
|
원하는 수업방식 또는 수업 방식 |
|
|
과목 리스트 |
|
|
과목 식별자 |
|
|
과목 타이틀 |
|
|
과목 수업 내용 |
|
|
차별성 - 튜터 |
|
|
성별 |
|
|
성격 |
|
|
수업료 또는 원하는 수업료 |
|
|
원하는 시간 |
|
|
사전 과외 여부 |
HTTP/1.1 201 Created
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1705
{
"data" : {
"profileId" : 1,
"name" : "test",
"rate" : 3.5,
"bio" : "test",
"school" : "test",
"wantedStatus" : "REQUEST",
"profileStatus" : "TUTOR",
"way" : "test",
"character" : "test",
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test",
"createAt" : "2023-04-25T00:31:16.075915",
"updateAt" : "2023-04-25T00:31:16.075918"
}, {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test",
"createAt" : "2023-04-25T00:31:16.075889",
"updateAt" : "2023-04-25T00:31:16.075906"
} ],
"difference" : "test",
"gender" : "test",
"pay" : "test",
"wantDate" : "test",
"preTutoring" : "test",
"profileImage" : {
"profileImageId" : 1,
"url" : "test",
"createAt" : "2023-04-25T00:31:16.07595",
"updateAt" : "2023-04-25T00:31:16.075953"
},
"createAt" : "2023-04-25T00:31:16.075958",
"updateAt" : "2023-04-25T00:31:16.075961",
"reviews" : [ {
"reviewId" : 1,
"professional" : 4,
"readiness" : 5,
"explanation" : 5,
"punctuality" : 4,
"reviewBody" : "test",
"tuteeName" : "test",
"createAt" : "2023-04-25T00:31:16.075941",
"updateAt" : "2023-04-25T00:31:16.075944"
}, {
"reviewId" : 1,
"professional" : 4,
"readiness" : 5,
"explanation" : 5,
"punctuality" : 4,
"reviewBody" : "test",
"tuteeName" : "test",
"createAt" : "2023-04-25T00:31:16.075931",
"updateAt" : "2023-04-25T00:31:16.075934"
} ]
},
"pageInfo" : {
"page" : 1,
"size" : 5,
"totalElements" : 7,
"totalPages" : 2
}
}
{
"data" : {
"profileId" : 1,
"name" : "test",
"rate" : 3.5,
"bio" : "test",
"school" : "test",
"wantedStatus" : "REQUEST",
"profileStatus" : "TUTOR",
"way" : "test",
"character" : "test",
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test",
"createAt" : "2023-04-25T00:31:16.075915",
"updateAt" : "2023-04-25T00:31:16.075918"
}, {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test",
"createAt" : "2023-04-25T00:31:16.075889",
"updateAt" : "2023-04-25T00:31:16.075906"
} ],
"difference" : "test",
"gender" : "test",
"pay" : "test",
"wantDate" : "test",
"preTutoring" : "test",
"profileImage" : {
"profileImageId" : 1,
"url" : "test",
"createAt" : "2023-04-25T00:31:16.07595",
"updateAt" : "2023-04-25T00:31:16.075953"
},
"createAt" : "2023-04-25T00:31:16.075958",
"updateAt" : "2023-04-25T00:31:16.075961",
"reviews" : [ {
"reviewId" : 1,
"professional" : 4,
"readiness" : 5,
"explanation" : 5,
"punctuality" : 4,
"reviewBody" : "test",
"tuteeName" : "test",
"createAt" : "2023-04-25T00:31:16.075941",
"updateAt" : "2023-04-25T00:31:16.075944"
}, {
"reviewId" : 1,
"professional" : 4,
"readiness" : 5,
"explanation" : 5,
"punctuality" : 4,
"reviewBody" : "test",
"tuteeName" : "test",
"createAt" : "2023-04-25T00:31:16.075931",
"updateAt" : "2023-04-25T00:31:16.075934"
} ]
},
"pageInfo" : {
"page" : 1,
"size" : 5,
"totalElements" : 7,
"totalPages" : 2
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
프로필 식별자 |
|
|
프로필 이름 |
|
|
별점 평균 |
|
|
한줄 소개 |
|
|
학교 정보 |
|
|
공고 상태 NONE/BASIC/REQUEST |
|
|
프로필 상태 TUTOR/TUTEE |
|
|
수업 방식 또는 원하는 방식 |
|
|
성격 |
|
|
과목 |
|
|
과목 식별자 |
|
|
과목 타이틀 |
|
|
과목 수업 내용 |
|
|
과목 생성 시각 |
|
|
과목 최종 수정 시각 |
|
|
차별점 |
|
|
성별 |
|
|
수업료 또는 원하는 수업료 |
|
|
원하는 날짜 |
|
|
사전 과외 가능 여부 |
|
|
프로필 이미지 정보 |
|
|
프로필 이미지 식별자 |
|
|
프로필 이미지 URL |
|
|
프로필 이미지 생성 시각 |
|
|
프로필 이미지 최종 수정 시각 |
|
|
프로필 생성 시각 |
|
|
프로필 최종 생성 시각 |
|
|
프로필 리뷰 리스트(튜터일때) |
|
|
후기 식별자 |
|
|
전문성 별점 |
|
|
준비성 별점 |
|
|
수업 설명 별점 |
|
|
시간 준수 별점 |
|
|
후기 내용 |
|
|
후기 작성자(튜티) |
|
|
후기 생성 시각 |
|
|
후기 최종 수정 시각 |
|
|
요청 페이지 정보 |
|
|
요청 페이지 - 0 = 1 페이지 |
|
|
페이지당 요청 회원 |
|
|
총 멤버 |
|
|
생성된 총 페이지 |
4.4. 프로필 수정
PATCH /profiles/details/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Content-Length: 454
Host: localhost:8080
{
"name" : "수포자",
"bio" : "잘찍습니다",
"school" : "고고고",
"way" : "잘합니다",
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test"
}, {
"subjectId" : 2,
"subjectTitle" : "test",
"content" : "test"
} ],
"difference" : "할쑤이ㅅ써",
"gender" : "남여",
"character" : "소심함",
"pay" : "비싸다",
"wantDate" : "7/7 9 to 9",
"preTutoring" : "안됨"
}
Parameter | Description |
---|---|
|
프로필 식별자 |
Name | Description |
---|---|
|
AccessToken |
{
"name" : "수포자",
"bio" : "잘찍습니다",
"school" : "고고고",
"way" : "잘합니다",
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test"
}, {
"subjectId" : 2,
"subjectTitle" : "test",
"content" : "test"
} ],
"difference" : "할쑤이ㅅ써",
"gender" : "남여",
"character" : "소심함",
"pay" : "비싸다",
"wantDate" : "7/7 9 to 9",
"preTutoring" : "안됨"
}
Path | Type | Description |
---|---|---|
|
|
프로필 이름 |
|
|
한줄 소개 |
|
|
학교 정보 |
|
|
원하는 수업방식 또는 수업 방식 |
|
|
과목 리스트 |
|
|
과목 식별자 |
|
|
과목 타이틀 |
|
|
과목 수업 내용 |
|
|
차별성 - 튜터 |
|
|
성별 |
|
|
성격 |
|
|
수업료 또는 원하는 수업료 |
|
|
원하는 시간 |
|
|
사전 과외 여부 |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1705
{
"data" : {
"profileId" : 1,
"name" : "test",
"rate" : 3.5,
"bio" : "test",
"school" : "test",
"wantedStatus" : "REQUEST",
"profileStatus" : "TUTOR",
"way" : "test",
"character" : "test",
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test",
"createAt" : "2023-04-25T00:31:16.357832",
"updateAt" : "2023-04-25T00:31:16.357836"
}, {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test",
"createAt" : "2023-04-25T00:31:16.357807",
"updateAt" : "2023-04-25T00:31:16.357823"
} ],
"difference" : "test",
"gender" : "test",
"pay" : "test",
"wantDate" : "test",
"preTutoring" : "test",
"profileImage" : {
"profileImageId" : 1,
"url" : "test",
"createAt" : "2023-04-25T00:31:16.357867",
"updateAt" : "2023-04-25T00:31:16.35787"
},
"createAt" : "2023-04-25T00:31:16.358039",
"updateAt" : "2023-04-25T00:31:16.358051",
"reviews" : [ {
"reviewId" : 1,
"professional" : 4,
"readiness" : 5,
"explanation" : 5,
"punctuality" : 4,
"reviewBody" : "test",
"tuteeName" : "test",
"createAt" : "2023-04-25T00:31:16.357858",
"updateAt" : "2023-04-25T00:31:16.357861"
}, {
"reviewId" : 1,
"professional" : 4,
"readiness" : 5,
"explanation" : 5,
"punctuality" : 4,
"reviewBody" : "test",
"tuteeName" : "test",
"createAt" : "2023-04-25T00:31:16.357848",
"updateAt" : "2023-04-25T00:31:16.357851"
} ]
},
"pageInfo" : {
"page" : 1,
"size" : 5,
"totalElements" : 7,
"totalPages" : 2
}
}
{
"data" : {
"profileId" : 1,
"name" : "test",
"rate" : 3.5,
"bio" : "test",
"school" : "test",
"wantedStatus" : "REQUEST",
"profileStatus" : "TUTOR",
"way" : "test",
"character" : "test",
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test",
"createAt" : "2023-04-25T00:31:16.357832",
"updateAt" : "2023-04-25T00:31:16.357836"
}, {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test",
"createAt" : "2023-04-25T00:31:16.357807",
"updateAt" : "2023-04-25T00:31:16.357823"
} ],
"difference" : "test",
"gender" : "test",
"pay" : "test",
"wantDate" : "test",
"preTutoring" : "test",
"profileImage" : {
"profileImageId" : 1,
"url" : "test",
"createAt" : "2023-04-25T00:31:16.357867",
"updateAt" : "2023-04-25T00:31:16.35787"
},
"createAt" : "2023-04-25T00:31:16.358039",
"updateAt" : "2023-04-25T00:31:16.358051",
"reviews" : [ {
"reviewId" : 1,
"professional" : 4,
"readiness" : 5,
"explanation" : 5,
"punctuality" : 4,
"reviewBody" : "test",
"tuteeName" : "test",
"createAt" : "2023-04-25T00:31:16.357858",
"updateAt" : "2023-04-25T00:31:16.357861"
}, {
"reviewId" : 1,
"professional" : 4,
"readiness" : 5,
"explanation" : 5,
"punctuality" : 4,
"reviewBody" : "test",
"tuteeName" : "test",
"createAt" : "2023-04-25T00:31:16.357848",
"updateAt" : "2023-04-25T00:31:16.357851"
} ]
},
"pageInfo" : {
"page" : 1,
"size" : 5,
"totalElements" : 7,
"totalPages" : 2
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
프로필 식별자 |
|
|
프로필 이름 |
|
|
별점 평균 |
|
|
한줄 소개 |
|
|
학교 정보 |
|
|
공고 상태 NONE/BASIC/REQUEST |
|
|
프로필 상태 TUTOR/TUTEE |
|
|
수업 방식 또는 원하는 방식 |
|
|
성격 |
|
|
과목 |
|
|
과목 식별자 |
|
|
과목 타이틀 |
|
|
과목 수업 내용 |
|
|
과목 생성 시각 |
|
|
과목 최종 수정 시각 |
|
|
차별점 |
|
|
성별 |
|
|
수업료 또는 원하는 수업료 |
|
|
원하는 날짜 |
|
|
사전 과외 가능 여부 |
|
|
프로필 이미지 정보 |
|
|
프로필 이미지 식별자 |
|
|
프로필 이미지 URL |
|
|
프로필 이미지 생성 시각 |
|
|
프로필 이미지 최종 수정 시각 |
|
|
프로필 생성 시각 |
|
|
프로필 최종 생성 시각 |
|
|
프로필 리뷰 리스트(튜터일때) |
|
|
후기 식별자 |
|
|
전문성 별점 |
|
|
준비성 별점 |
|
|
수업 설명 별점 |
|
|
시간 준수 별점 |
|
|
후기 내용 |
|
|
후기 작성자(튜티) |
|
|
후기 생성 시각 |
|
|
후기 최종 수정 시각 |
|
|
요청 페이지 정보 |
|
|
요청 페이지 - 0 = 1 페이지 |
|
|
페이지당 요청 회원 |
|
|
총 멤버 |
|
|
생성된 총 페이지 |
4.5. 프로필 공고 상태 수정
PATCH /profiles/details/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Content-Length: 454
Host: localhost:8080
{
"name" : "수포자",
"bio" : "잘찍습니다",
"school" : "고고고",
"way" : "잘합니다",
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test"
}, {
"subjectId" : 2,
"subjectTitle" : "test",
"content" : "test"
} ],
"difference" : "할쑤이ㅅ써",
"gender" : "남여",
"character" : "소심함",
"pay" : "비싸다",
"wantDate" : "7/7 9 to 9",
"preTutoring" : "안됨"
}
Parameter | Description |
---|---|
|
프로필 식별자 |
Name | Description |
---|---|
|
AccessToken |
{
"name" : "수포자",
"bio" : "잘찍습니다",
"school" : "고고고",
"way" : "잘합니다",
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test"
}, {
"subjectId" : 2,
"subjectTitle" : "test",
"content" : "test"
} ],
"difference" : "할쑤이ㅅ써",
"gender" : "남여",
"character" : "소심함",
"pay" : "비싸다",
"wantDate" : "7/7 9 to 9",
"preTutoring" : "안됨"
}
Path | Type | Description |
---|---|---|
|
|
프로필 이름 |
|
|
한줄 소개 |
|
|
학교 정보 |
|
|
원하는 수업방식 또는 수업 방식 |
|
|
과목 리스트 |
|
|
과목 식별자 |
|
|
과목 타이틀 |
|
|
과목 수업 내용 |
|
|
차별성 - 튜터 |
|
|
성별 |
|
|
성격 |
|
|
수업료 또는 원하는 수업료 |
|
|
원하는 시간 |
|
|
사전 과외 여부 |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1705
{
"data" : {
"profileId" : 1,
"name" : "test",
"rate" : 3.5,
"bio" : "test",
"school" : "test",
"wantedStatus" : "REQUEST",
"profileStatus" : "TUTOR",
"way" : "test",
"character" : "test",
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test",
"createAt" : "2023-04-25T00:31:16.357832",
"updateAt" : "2023-04-25T00:31:16.357836"
}, {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test",
"createAt" : "2023-04-25T00:31:16.357807",
"updateAt" : "2023-04-25T00:31:16.357823"
} ],
"difference" : "test",
"gender" : "test",
"pay" : "test",
"wantDate" : "test",
"preTutoring" : "test",
"profileImage" : {
"profileImageId" : 1,
"url" : "test",
"createAt" : "2023-04-25T00:31:16.357867",
"updateAt" : "2023-04-25T00:31:16.35787"
},
"createAt" : "2023-04-25T00:31:16.358039",
"updateAt" : "2023-04-25T00:31:16.358051",
"reviews" : [ {
"reviewId" : 1,
"professional" : 4,
"readiness" : 5,
"explanation" : 5,
"punctuality" : 4,
"reviewBody" : "test",
"tuteeName" : "test",
"createAt" : "2023-04-25T00:31:16.357858",
"updateAt" : "2023-04-25T00:31:16.357861"
}, {
"reviewId" : 1,
"professional" : 4,
"readiness" : 5,
"explanation" : 5,
"punctuality" : 4,
"reviewBody" : "test",
"tuteeName" : "test",
"createAt" : "2023-04-25T00:31:16.357848",
"updateAt" : "2023-04-25T00:31:16.357851"
} ]
},
"pageInfo" : {
"page" : 1,
"size" : 5,
"totalElements" : 7,
"totalPages" : 2
}
}
{
"data" : {
"profileId" : 1,
"name" : "test",
"rate" : 3.5,
"bio" : "test",
"school" : "test",
"wantedStatus" : "REQUEST",
"profileStatus" : "TUTOR",
"way" : "test",
"character" : "test",
"subjects" : [ {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test",
"createAt" : "2023-04-25T00:31:16.357832",
"updateAt" : "2023-04-25T00:31:16.357836"
}, {
"subjectId" : 1,
"subjectTitle" : "test",
"content" : "test",
"createAt" : "2023-04-25T00:31:16.357807",
"updateAt" : "2023-04-25T00:31:16.357823"
} ],
"difference" : "test",
"gender" : "test",
"pay" : "test",
"wantDate" : "test",
"preTutoring" : "test",
"profileImage" : {
"profileImageId" : 1,
"url" : "test",
"createAt" : "2023-04-25T00:31:16.357867",
"updateAt" : "2023-04-25T00:31:16.35787"
},
"createAt" : "2023-04-25T00:31:16.358039",
"updateAt" : "2023-04-25T00:31:16.358051",
"reviews" : [ {
"reviewId" : 1,
"professional" : 4,
"readiness" : 5,
"explanation" : 5,
"punctuality" : 4,
"reviewBody" : "test",
"tuteeName" : "test",
"createAt" : "2023-04-25T00:31:16.357858",
"updateAt" : "2023-04-25T00:31:16.357861"
}, {
"reviewId" : 1,
"professional" : 4,
"readiness" : 5,
"explanation" : 5,
"punctuality" : 4,
"reviewBody" : "test",
"tuteeName" : "test",
"createAt" : "2023-04-25T00:31:16.357848",
"updateAt" : "2023-04-25T00:31:16.357851"
} ]
},
"pageInfo" : {
"page" : 1,
"size" : 5,
"totalElements" : 7,
"totalPages" : 2
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
프로필 식별자 |
|
|
프로필 이름 |
|
|
별점 평균 |
|
|
한줄 소개 |
|
|
학교 정보 |
|
|
공고 상태 NONE/BASIC/REQUEST |
|
|
프로필 상태 TUTOR/TUTEE |
|
|
수업 방식 또는 원하는 방식 |
|
|
성격 |
|
|
과목 |
|
|
과목 식별자 |
|
|
과목 타이틀 |
|
|
과목 수업 내용 |
|
|
과목 생성 시각 |
|
|
과목 최종 수정 시각 |
|
|
차별점 |
|
|
성별 |
|
|
수업료 또는 원하는 수업료 |
|
|
원하는 날짜 |
|
|
사전 과외 가능 여부 |
|
|
프로필 이미지 정보 |
|
|
프로필 이미지 식별자 |
|
|
프로필 이미지 URL |
|
|
프로필 이미지 생성 시각 |
|
|
프로필 이미지 최종 수정 시각 |
|
|
프로필 생성 시각 |
|
|
프로필 최종 생성 시각 |
|
|
프로필 리뷰 리스트(튜터일때) |
|
|
후기 식별자 |
|
|
전문성 별점 |
|
|
준비성 별점 |
|
|
수업 설명 별점 |
|
|
시간 준수 별점 |
|
|
후기 내용 |
|
|
후기 작성자(튜티) |
|
|
후기 생성 시각 |
|
|
후기 최종 수정 시각 |
|
|
요청 페이지 정보 |
|
|
요청 페이지 - 0 = 1 페이지 |
|
|
페이지당 요청 회원 |
|
|
총 멤버 |
|
|
생성된 총 페이지 |
4.6. 프로필 삭제
DELETE /profiles/details/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
프로필 식별자 |
Name | Description |
---|---|
|
AccessToken |
HTTP/1.1 204 No Content
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
5. Tutoring
5.1. 특정 프로필의 과외 생성
POST /tutoring/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Content-Length: 87
Host: localhost:8080
{
"tutorId" : 1,
"tuteeId" : 2,
"tutoringTitle" : "test",
"messageRoomId" : 1
}
Parameter | Description |
---|---|
|
프로필 식별자 |
Name | Description |
---|---|
|
AccessToken |
{
"tutorId" : 1,
"tuteeId" : 2,
"tutoringTitle" : "test",
"messageRoomId" : 1
}
HTTP/1.1 201 Created
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 290
{
"data" : {
"tutoringId" : 1,
"tutorName" : "강호수",
"tuteeName" : "김다은",
"tutoringTitle" : "수학 뿌셔 과학 뿌셔",
"tutoringStatus" : "TUTEE_WAITING",
"createAt" : "2023-04-25T00:31:18.341597",
"updateAt" : "2023-04-25T00:31:18.341602"
}
}
{
"data" : {
"tutoringId" : 1,
"tutorName" : "강호수",
"tuteeName" : "김다은",
"tutoringTitle" : "수학 뿌셔 과학 뿌셔",
"tutoringStatus" : "TUTEE_WAITING",
"createAt" : "2023-04-25T00:31:18.341597",
"updateAt" : "2023-04-25T00:31:18.341602"
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
과외 식별자 |
|
|
튜터 이름 |
|
|
튜티 이름 |
|
|
과외 타이틀 |
|
|
과외 상태 |
|
|
생성 시각 |
|
|
최종 수정 시각 |
5.2. 특정 프로필 전체 과외 리스트 조회
GET /tutoring/1?page=0 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
프로필 식별자 |
Name | Description |
---|---|
|
AccessToken |
Parameter | Description |
---|---|
|
요청 페이지 정보 |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 673
{
"data" : [ {
"tutoringId" : 1,
"tutorName" : "강호수",
"tuteeName" : "김다은",
"tutoringTitle" : "수학 뿌셔 과학 뿌셔",
"tutoringStatus" : "TUTEE_WAITING",
"createAt" : "2023-04-25T00:31:18.370268",
"updateAt" : "2023-04-25T00:31:18.370272"
}, {
"tutoringId" : 1,
"tutorName" : "강호수",
"tuteeName" : "김다은",
"tutoringTitle" : "수학 뿌셔 과학 뿌셔",
"tutoringStatus" : "TUTEE_WAITING",
"createAt" : "2023-04-25T00:31:18.370268",
"updateAt" : "2023-04-25T00:31:18.370272"
} ],
"pageInfo" : {
"page" : 1,
"size" : 10,
"totalElements" : 12,
"totalPages" : 2
}
}
{
"data" : [ {
"tutoringId" : 1,
"tutorName" : "강호수",
"tuteeName" : "김다은",
"tutoringTitle" : "수학 뿌셔 과학 뿌셔",
"tutoringStatus" : "TUTEE_WAITING",
"createAt" : "2023-04-25T00:31:18.370268",
"updateAt" : "2023-04-25T00:31:18.370272"
}, {
"tutoringId" : 1,
"tutorName" : "강호수",
"tuteeName" : "김다은",
"tutoringTitle" : "수학 뿌셔 과학 뿌셔",
"tutoringStatus" : "TUTEE_WAITING",
"createAt" : "2023-04-25T00:31:18.370268",
"updateAt" : "2023-04-25T00:31:18.370272"
} ],
"pageInfo" : {
"page" : 1,
"size" : 10,
"totalElements" : 12,
"totalPages" : 2
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
과외 식별자 |
|
|
튜터 이름 |
|
|
튜티 이름 |
|
|
과외 타이틀 |
|
|
과외 상태 |
|
|
생성 시각 |
|
|
최종 수정 시각 |
|
|
요청 페이지 정보 |
|
|
요청 페이지 - 0 = 1 페이지 |
|
|
페이지당 요청 회원 |
|
|
총 멤버 |
|
|
생성된 총 페이지 |
5.3. 특정 과외 매칭 요청
PATCH /tutoring/details/1/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
프로필 식별자 |
|
과외 식별자 |
Name | Description |
---|---|
|
AccessToken |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1344
{
"data" : {
"tutoringId" : 1,
"tutoringTitle" : "열심히 가르칩니다! 강호수입니다!",
"tutoringStatus" : "TUTOR_WAITING",
"latestNoticeId" : 1,
"latestNoticeBody" : "공지",
"tuteeId" : 1,
"tuteeName" : "어때요",
"tutorId" : 1,
"tutorName" : "어때요",
"reviewId" : 1,
"createAt" : "2023-04-25T00:31:18.191396",
"updateAt" : "2023-04-25T00:31:18.191399",
"dateNotices" : [ {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.190846",
"endTime" : "2023-04-25T00:31:18.190868",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
}, {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.190936",
"endTime" : "2023-04-25T00:31:18.190940",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
}, {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.190947",
"endTime" : "2023-04-25T00:31:18.190950",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
} ]
},
"pageInfo" : {
"page" : 0,
"size" : 5,
"totalElements" : 3,
"totalPages" : 1
}
}
{
"data" : {
"tutoringId" : 1,
"tutoringTitle" : "열심히 가르칩니다! 강호수입니다!",
"tutoringStatus" : "TUTOR_WAITING",
"latestNoticeId" : 1,
"latestNoticeBody" : "공지",
"tuteeId" : 1,
"tuteeName" : "어때요",
"tutorId" : 1,
"tutorName" : "어때요",
"reviewId" : 1,
"createAt" : "2023-04-25T00:31:18.191396",
"updateAt" : "2023-04-25T00:31:18.191399",
"dateNotices" : [ {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.190846",
"endTime" : "2023-04-25T00:31:18.190868",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
}, {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.190936",
"endTime" : "2023-04-25T00:31:18.190940",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
}, {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.190947",
"endTime" : "2023-04-25T00:31:18.190950",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
} ]
},
"pageInfo" : {
"page" : 0,
"size" : 5,
"totalElements" : 3,
"totalPages" : 1
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
과외 식별자 |
|
|
튜터 타이틀 |
|
|
과외 상태 PROGRESS/WAIT_FINISH/TUTOR_DELETE/TUTEE_DELETE |
|
|
마지막 공지 식별자 |
|
|
마지막 공지 내용 |
|
|
튜티 식별자 |
|
|
튜티 이름 |
|
|
튜터 식별자 |
|
|
튜터 이름 |
|
|
과외에 대한 후기 식별자 |
|
|
생성 시각 |
|
|
최종 수정 시각 |
|
|
일지 목록 |
|
|
일지 식별자 |
|
|
일지 타이틀 |
|
|
시작 시간 |
|
|
종료 시간 |
|
|
과제 갯수 |
|
|
종료된 과제 갯수 |
|
|
공지 등록 여부 |
|
|
요청 페이지 정보 |
|
|
요청 페이지 - 0 = 1 페이지 |
|
|
페이지당 요청 회원 |
|
|
총 멤버 |
|
|
생성된 총 페이지 |
5.4. 특정 과외 상세 조회
GET /tutoring/details/1/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
프로필 식별자 |
|
과외 식별자 |
Name | Description |
---|---|
|
AccessToken |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1344
{
"data" : {
"tutoringId" : 1,
"tutoringTitle" : "열심히 가르칩니다! 강호수입니다!",
"tutoringStatus" : "TUTOR_WAITING",
"latestNoticeId" : 1,
"latestNoticeBody" : "공지",
"tuteeId" : 1,
"tuteeName" : "어때요",
"tutorId" : 1,
"tutorName" : "어때요",
"reviewId" : 1,
"createAt" : "2023-04-25T00:31:18.255464",
"updateAt" : "2023-04-25T00:31:18.255465",
"dateNotices" : [ {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.255400",
"endTime" : "2023-04-25T00:31:18.255414",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
}, {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.255426",
"endTime" : "2023-04-25T00:31:18.255429",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
}, {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.255436",
"endTime" : "2023-04-25T00:31:18.255438",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
} ]
},
"pageInfo" : {
"page" : 0,
"size" : 5,
"totalElements" : 3,
"totalPages" : 1
}
}
{
"data" : {
"tutoringId" : 1,
"tutoringTitle" : "열심히 가르칩니다! 강호수입니다!",
"tutoringStatus" : "TUTOR_WAITING",
"latestNoticeId" : 1,
"latestNoticeBody" : "공지",
"tuteeId" : 1,
"tuteeName" : "어때요",
"tutorId" : 1,
"tutorName" : "어때요",
"reviewId" : 1,
"createAt" : "2023-04-25T00:31:18.255464",
"updateAt" : "2023-04-25T00:31:18.255465",
"dateNotices" : [ {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.255400",
"endTime" : "2023-04-25T00:31:18.255414",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
}, {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.255426",
"endTime" : "2023-04-25T00:31:18.255429",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
}, {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.255436",
"endTime" : "2023-04-25T00:31:18.255438",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
} ]
},
"pageInfo" : {
"page" : 0,
"size" : 5,
"totalElements" : 3,
"totalPages" : 1
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
과외 식별자 |
|
|
튜터 타이틀 |
|
|
과외 상태 TUTEE_WAITING/TUTOR_WAITING/PROGRESS/UNCHECK/WAIT_FINISH/FINISH |
|
|
마지막 공지 식별자 |
|
|
마지막 공지 내용 |
|
|
튜티 식별자 |
|
|
튜티 이름 |
|
|
튜터 식별자 |
|
|
튜터 이름 |
|
|
과외에 대한 후기 식별자 |
|
|
생성 시각 |
|
|
최종 수정 시각 |
|
|
일지 목록 |
|
|
일지 식별자 |
|
|
일지 타이틀 |
|
|
시작 시간 |
|
|
종료 시간 |
|
|
과제 갯수 |
|
|
종료된 과제 갯수 |
|
|
공지 등록 여부 |
|
|
요청 페이지 정보 |
|
|
요청 페이지 - 0 = 1 페이지 |
|
|
페이지당 요청 회원 |
|
|
총 멤버 |
|
|
생성된 총 페이지 |
5.5. 특정 과외 상태 및 타이틀 수정
PATCH /tutoring/details/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Content-Length: 68
Host: localhost:8080
{
"tutoringTitle" : "타이틀",
"tutoringStatus" : "PROGRESS"
}
Parameter | Description |
---|---|
|
과외 식별자 |
Name | Description |
---|---|
|
AccessToken |
{
"tutoringTitle" : "타이틀",
"tutoringStatus" : "PROGRESS"
}
Path | Type | Description |
---|---|---|
|
|
과외 타이틀 |
|
|
과외 상태 FINISH |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1344
{
"data" : {
"tutoringId" : 1,
"tutoringTitle" : "열심히 가르칩니다! 강호수입니다!",
"tutoringStatus" : "TUTOR_WAITING",
"latestNoticeId" : 1,
"latestNoticeBody" : "공지",
"tuteeId" : 1,
"tuteeName" : "어때요",
"tutorId" : 1,
"tutorName" : "어때요",
"reviewId" : 1,
"createAt" : "2023-04-25T00:31:18.485527",
"updateAt" : "2023-04-25T00:31:18.485527",
"dateNotices" : [ {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.485465",
"endTime" : "2023-04-25T00:31:18.485478",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
}, {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.485489",
"endTime" : "2023-04-25T00:31:18.485492",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
}, {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.485499",
"endTime" : "2023-04-25T00:31:18.485501",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
} ]
},
"pageInfo" : {
"page" : 0,
"size" : 5,
"totalElements" : 3,
"totalPages" : 1
}
}
{
"data" : {
"tutoringId" : 1,
"tutoringTitle" : "열심히 가르칩니다! 강호수입니다!",
"tutoringStatus" : "TUTOR_WAITING",
"latestNoticeId" : 1,
"latestNoticeBody" : "공지",
"tuteeId" : 1,
"tuteeName" : "어때요",
"tutorId" : 1,
"tutorName" : "어때요",
"reviewId" : 1,
"createAt" : "2023-04-25T00:31:18.485527",
"updateAt" : "2023-04-25T00:31:18.485527",
"dateNotices" : [ {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.485465",
"endTime" : "2023-04-25T00:31:18.485478",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
}, {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.485489",
"endTime" : "2023-04-25T00:31:18.485492",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
}, {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.485499",
"endTime" : "2023-04-25T00:31:18.485501",
"homeworkCount" : 3,
"finishHomeworkCount" : 0,
"noticeStatus" : "NOTICE"
} ]
},
"pageInfo" : {
"page" : 0,
"size" : 5,
"totalElements" : 3,
"totalPages" : 1
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
과외 식별자 |
|
|
튜터 타이틀 |
|
|
과외 상태 TUTEE_WAITING/TUTOR_WAITING/PROGRESS/UNCHECK/WAIT_FINISH/FINISH |
|
|
마지막 공지 식별자 |
|
|
마지막 공지 내용 |
|
|
튜티 식별자 |
|
|
튜티 이름 |
|
|
튜터 식별자 |
|
|
튜터 이름 |
|
|
과외에 대한 후기 식별자 |
|
|
생성 시각 |
|
|
최종 수정 시각 |
|
|
일지 목록 |
|
|
일지 식별자 |
|
|
일지 타이틀 |
|
|
시작 시간 |
|
|
종료 시간 |
|
|
과제 갯수 |
|
|
종료된 과제 갯수 |
|
|
공지 등록 여부 |
|
|
요청 페이지 정보 |
|
|
요청 페이지 - 0 = 1 페이지 |
|
|
페이지당 요청 회원 |
|
|
총 멤버 |
|
|
생성된 총 페이지 |
5.6. 특정 과외 삭제
DELETE /tutoring/details/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
과외 식별자 |
Name | Description |
---|---|
|
AccessToken |
HTTP/1.1 204 No Content
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
5.7. 일지 생성
POST /tutoring/date-notice/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Content-Length: 264
Host: localhost:8080
{
"dateNoticeTitle" : "test",
"startTime" : "2023-04-25T00:31:18.291114",
"endTime" : "2023-04-25T00:31:18.291141",
"scheduleBody" : "test",
"noticeBody" : "test",
"homeworks" : [ {
"homeworkBody" : "test",
"homeworkStatus" : "PROGRESS"
} ]
}
Parameter | Description |
---|---|
|
과외 식별자 |
Name | Description |
---|---|
|
AccessToken |
{
"dateNoticeTitle" : "test",
"startTime" : "2023-04-25T00:31:18.291114",
"endTime" : "2023-04-25T00:31:18.291141",
"scheduleBody" : "test",
"noticeBody" : "test",
"homeworks" : [ {
"homeworkBody" : "test",
"homeworkStatus" : "PROGRESS"
} ]
}
Path | Type | Description |
---|---|---|
|
|
일지 타이틀 |
|
|
시작 시각 |
|
|
종료 시각 |
|
|
일정 내용 |
|
|
공지글 내용 |
|
|
과제 리스트 |
|
|
과제 내용 |
|
|
과제 상태 |
HTTP/1.1 201 Created
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 701
{
"data" : {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.291954",
"endTime" : "2023-04-25T00:31:18.291962",
"schedule" : {
"scheduleId" : 1,
"scheduleBody" : "TestBody"
},
"notice" : {
"noticeId" : 1,
"noticeBody" : "TestBody"
},
"homeworks" : [ {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
}, {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
}, {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
} ],
"noticeStatus" : "NOTICE"
}
}
{
"data" : {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.291954",
"endTime" : "2023-04-25T00:31:18.291962",
"schedule" : {
"scheduleId" : 1,
"scheduleBody" : "TestBody"
},
"notice" : {
"noticeId" : 1,
"noticeBody" : "TestBody"
},
"homeworks" : [ {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
}, {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
}, {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
} ],
"noticeStatus" : "NOTICE"
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
일지 식별자 |
|
|
일지 제목 |
|
|
시작 시간 |
|
|
종료 시간 |
|
|
일정 |
|
|
일정 식별자 |
|
|
일정 내용 |
|
|
공지 |
|
|
공지 식별자 |
|
|
공지 내용 |
|
|
과제 |
|
|
과제 식별자 |
|
|
과제 내용 |
|
|
과제 상태 |
|
|
공지 글 유무 NOTICE/NONE |
5.8. 일지 상세 조회
GET /tutoring/date-notice/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
일지 식별자 |
Name | Description |
---|---|
|
AccessToken |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 701
{
"data" : {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.448326",
"endTime" : "2023-04-25T00:31:18.448338",
"schedule" : {
"scheduleId" : 1,
"scheduleBody" : "TestBody"
},
"notice" : {
"noticeId" : 1,
"noticeBody" : "TestBody"
},
"homeworks" : [ {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
}, {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
}, {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
} ],
"noticeStatus" : "NOTICE"
}
}
{
"data" : {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.448326",
"endTime" : "2023-04-25T00:31:18.448338",
"schedule" : {
"scheduleId" : 1,
"scheduleBody" : "TestBody"
},
"notice" : {
"noticeId" : 1,
"noticeBody" : "TestBody"
},
"homeworks" : [ {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
}, {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
}, {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
} ],
"noticeStatus" : "NOTICE"
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
일지 식별자 |
|
|
일지 제목 |
|
|
일정 시작 시각 |
|
|
일정 종료 시각 |
|
|
일정 |
|
|
일정 식별자 |
|
|
일정 내용 |
|
|
공지 |
|
|
공지 식별자 |
|
|
공지 내용 |
|
|
과제 |
|
|
과제 식별자 |
|
|
과제 내용 |
|
|
과제 상태 |
|
|
공지 글 유무 NOTICE/NONE |
5.9. 일지 수정
PATCH /tutoring/date-notice/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Content-Length: 264
Host: localhost:8080
{
"dateNoticeTitle" : "test",
"startTime" : "2023-04-25T00:31:18.406540",
"endTime" : "2023-04-25T00:31:18.406558",
"scheduleBody" : "test",
"noticeBody" : "test",
"homeworks" : [ {
"homeworkBody" : "test",
"homeworkStatus" : "PROGRESS"
} ]
}
Parameter | Description |
---|---|
|
일지 식별자 |
Name | Description |
---|---|
|
AccessToken |
{
"dateNoticeTitle" : "test",
"startTime" : "2023-04-25T00:31:18.406540",
"endTime" : "2023-04-25T00:31:18.406558",
"scheduleBody" : "test",
"noticeBody" : "test",
"homeworks" : [ {
"homeworkBody" : "test",
"homeworkStatus" : "PROGRESS"
} ]
}
Path | Type | Description |
---|---|---|
|
|
일지 타이틀 |
|
|
일지 타이틀 |
|
|
시작 시간 |
|
|
종료 시각 |
|
|
일정 내용 |
|
|
공지 내용 |
|
|
과제 |
|
|
과제 내용 |
|
|
과제 상태 PROGRESS/FINISH |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 701
{
"data" : {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.407322",
"endTime" : "2023-04-25T00:31:18.407329",
"schedule" : {
"scheduleId" : 1,
"scheduleBody" : "TestBody"
},
"notice" : {
"noticeId" : 1,
"noticeBody" : "TestBody"
},
"homeworks" : [ {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
}, {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
}, {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
} ],
"noticeStatus" : "NOTICE"
}
}
{
"data" : {
"dateNoticeId" : 1,
"dateNoticeTitle" : "TestTitle",
"startTime" : "2023-04-25T00:31:18.407322",
"endTime" : "2023-04-25T00:31:18.407329",
"schedule" : {
"scheduleId" : 1,
"scheduleBody" : "TestBody"
},
"notice" : {
"noticeId" : 1,
"noticeBody" : "TestBody"
},
"homeworks" : [ {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
}, {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
}, {
"homeworkId" : 1,
"homeworkBody" : "TestBody",
"homeworkStatus" : "PROGRESS"
} ],
"noticeStatus" : "NOTICE"
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
일지 식별자 |
|
|
일지 제목 |
|
|
일정 시작 시각 |
|
|
일정 종료 시각 |
|
|
일정 |
|
|
일정 식별자 |
|
|
일정 내용 |
|
|
공지 |
|
|
공지 식별자 |
|
|
공지 내용 |
|
|
과제 |
|
|
과제 식별자 |
|
|
과제 내용 |
|
|
과제 상태 |
|
|
공지 글 유무 NOTICE/NONE |
5.10. 특정 일지 삭제
DELETE /tutoring/date-notice/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
일지 식별자 |
Name | Description |
---|---|
|
AccessToken |
HTTP/1.1 204 No Content
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
6. Review
6.1. 특정 후기 조회
GET /reviews/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
후기 식별자 |
Name | Description |
---|---|
|
AccessToken |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 286
{
"data" : {
"reviewId" : 1,
"professional" : 4,
"readiness" : 4,
"explanation" : 5,
"punctuality" : 5,
"reviewBody" : "TestBody",
"tuteeName" : "testTutee",
"createAt" : "2023-04-25T00:31:17.391695",
"updateAt" : "2023-04-25T00:31:17.391699"
}
}
{
"data" : {
"reviewId" : 1,
"professional" : 4,
"readiness" : 4,
"explanation" : 5,
"punctuality" : 5,
"reviewBody" : "TestBody",
"tuteeName" : "testTutee",
"createAt" : "2023-04-25T00:31:17.391695",
"updateAt" : "2023-04-25T00:31:17.391699"
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
후기 식별자 |
|
|
전문성 별점 |
|
|
준비성 별점 |
|
|
설명 별점 |
|
|
시간 준수 별점 |
|
|
후기 내용 |
|
|
튜티 이름 |
|
|
생성 시각 |
|
|
최종 수정 시각 |
6.2. 특정 과외 후기 생성
POST /reviews/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Content-Length: 114
Host: localhost:8080
{
"professional" : 4,
"readiness" : 4,
"explanation" : 5,
"punctuality" : 5,
"reviewBody" : "TestBody"
}
Parameter | Description |
---|---|
|
과외 식별자 |
Name | Description |
---|---|
|
AccessToken |
{
"professional" : 4,
"readiness" : 4,
"explanation" : 5,
"punctuality" : 5,
"reviewBody" : "TestBody"
}
Path | Type | Description |
---|---|---|
|
|
전문성 별점 |
|
|
준비성 별점 |
|
|
설명력 별점 |
|
|
시간 준수 별점 |
|
|
후기 내용 |
HTTP/1.1 201 Created
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 286
{
"data" : {
"reviewId" : 1,
"professional" : 4,
"readiness" : 4,
"explanation" : 5,
"punctuality" : 5,
"reviewBody" : "TestBody",
"tuteeName" : "testTutee",
"createAt" : "2023-04-25T00:31:17.431159",
"updateAt" : "2023-04-25T00:31:17.431163"
}
}
{
"data" : {
"reviewId" : 1,
"professional" : 4,
"readiness" : 4,
"explanation" : 5,
"punctuality" : 5,
"reviewBody" : "TestBody",
"tuteeName" : "testTutee",
"createAt" : "2023-04-25T00:31:17.431159",
"updateAt" : "2023-04-25T00:31:17.431163"
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
후기 식별자 |
|
|
전문성 별점 |
|
|
준비성 별점 |
|
|
설명력 별점 |
|
|
시간 준수 별점 |
|
|
후기 내용 |
|
|
튜티 이름 |
|
|
생성 시각 |
|
|
최종 수정 시각 |
6.3. 특정 과외 후기 수정
PATCH /reviews/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Content-Length: 114
Host: localhost:8080
{
"professional" : 4,
"readiness" : 4,
"explanation" : 5,
"punctuality" : 5,
"reviewBody" : "TestBody"
}
Parameter | Description |
---|---|
|
과외 식별자 |
Name | Description |
---|---|
|
AccessToken |
{
"professional" : 4,
"readiness" : 4,
"explanation" : 5,
"punctuality" : 5,
"reviewBody" : "TestBody"
}
Path | Type | Description |
---|---|---|
|
|
전문성 별점 |
|
|
준비성 별점 |
|
|
설명력 별점 |
|
|
시간 준수 별점 |
|
|
후기 내용 |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 286
{
"data" : {
"reviewId" : 1,
"professional" : 4,
"readiness" : 4,
"explanation" : 5,
"punctuality" : 5,
"reviewBody" : "TestBody",
"tuteeName" : "testTutee",
"createAt" : "2023-04-25T00:31:17.302412",
"updateAt" : "2023-04-25T00:31:17.302423"
}
}
{
"data" : {
"reviewId" : 1,
"professional" : 4,
"readiness" : 4,
"explanation" : 5,
"punctuality" : 5,
"reviewBody" : "TestBody",
"tuteeName" : "testTutee",
"createAt" : "2023-04-25T00:31:17.302412",
"updateAt" : "2023-04-25T00:31:17.302423"
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
후기 식별자 |
|
|
전문성 별점 |
|
|
준비성 별점 |
|
|
설명력 별점 |
|
|
시간 준수 별점 |
|
|
후기 내용 |
|
|
튜티 이름 |
|
|
생성 시각 |
|
|
최종 수정 시각 |
7. Message
7.1. 메세지 생성
POST /messages HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Content-Length: 92
Host: localhost:8080
{
"senderId" : 1,
"receiverId" : 2,
"messageRoomId" : 1,
"messageContent" : "test"
}
Name | Description |
---|---|
|
AccessToken |
{
"senderId" : 1,
"receiverId" : 2,
"messageRoomId" : 1,
"messageContent" : "test"
}
Path | Type | Description |
---|---|---|
|
|
보내는 프로필 식별자 |
|
|
받는 프로필 식별자 |
|
|
메세지 룸 식별자 |
|
|
메세지 내용 |
HTTP/1.1 201 Created
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 243
{
"data" : {
"messageRoomId" : 1,
"messageId" : 1,
"senderId" : 1,
"senderName" : "test1",
"receiverId" : 2,
"receiverName" : "test2",
"messageContent" : "test",
"createAt" : "2023-04-25T00:31:15.095836"
}
}
{
"data" : {
"messageRoomId" : 1,
"messageId" : 1,
"senderId" : 1,
"senderName" : "test1",
"receiverId" : 2,
"receiverName" : "test2",
"messageContent" : "test",
"createAt" : "2023-04-25T00:31:15.095836"
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
메세지 룸 식별자 |
|
|
메세지 식별자 |
|
|
보내는 프로필 식별자 |
|
|
보내는 프로필 이름 |
|
|
받는 프로필 식별자 |
|
|
받는 프로필 이름 |
|
|
메세지 내용 |
|
|
메세지 생성 시각 |
7.2. 메세지 룸 생성
POST /messages/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Content-Length: 36
Host: localhost:8080
{
"tutorId" : 2,
"tuteeId" : 1
}
Parameter | Description |
---|---|
|
프로필 식별자 |
Name | Description |
---|---|
|
AccessToken |
{
"tutorId" : 2,
"tuteeId" : 1
}
Path | Type | Description |
---|---|---|
|
|
튜터 프로필 식별자 |
|
|
튜티 프로필 식별자 |
HTTP/1.1 201 Created
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 236
{
"data" : {
"messageRoomId" : 1,
"messageStatus" : "UNCHECK",
"lastMessage" : "test",
"lastSenderId" : 1,
"targetName" : "test",
"targetProfileUrl" : "test",
"createAt" : "2023-04-25T00:31:14.906156"
}
}
{
"data" : {
"messageRoomId" : 1,
"messageStatus" : "UNCHECK",
"lastMessage" : "test",
"lastSenderId" : 1,
"targetName" : "test",
"targetProfileUrl" : "test",
"createAt" : "2023-04-25T00:31:14.906156"
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
메세지 룸 식별자 |
|
|
메세지 룸 상태 |
|
|
마지막 메세지 내용 |
|
|
마지막 메세지 보낸 프로필 식별자 |
|
|
메세지 룸 상대방 프로필 이름 |
|
|
상대방 프로필 사진 URL |
|
|
메세지 룸 생성 시각 |
7.3. 특정 프로필 메세지 룸 리스트 조회
GET /messages/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
프로필 식별자 |
Name | Description |
---|---|
|
AccessToken |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 563
{
"data" : [ {
"messageRoomId" : 1,
"messageStatus" : "UNCHECK",
"lastMessage" : "test",
"lastSenderId" : 1,
"targetName" : "test",
"targetProfileUrl" : "test",
"createAt" : "2023-04-25T00:31:14.998028"
}, {
"messageRoomId" : 1,
"messageStatus" : "UNCHECK",
"lastMessage" : "test",
"lastSenderId" : 1,
"targetName" : "test",
"targetProfileUrl" : "test",
"createAt" : "2023-04-25T00:31:14.998028"
} ],
"pageInfo" : {
"page" : 0,
"size" : 2,
"totalElements" : 2,
"totalPages" : 1
}
}
{
"data" : [ {
"messageRoomId" : 1,
"messageStatus" : "UNCHECK",
"lastMessage" : "test",
"lastSenderId" : 1,
"targetName" : "test",
"targetProfileUrl" : "test",
"createAt" : "2023-04-25T00:31:14.998028"
}, {
"messageRoomId" : 1,
"messageStatus" : "UNCHECK",
"lastMessage" : "test",
"lastSenderId" : 1,
"targetName" : "test",
"targetProfileUrl" : "test",
"createAt" : "2023-04-25T00:31:14.998028"
} ],
"pageInfo" : {
"page" : 0,
"size" : 2,
"totalElements" : 2,
"totalPages" : 1
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
메세지 룸 식별자 |
|
|
메세지 룸 상태 |
|
|
마지막 메세지 내용 |
|
|
마지막 메세지 보낸 프로필 식별자 |
|
|
메세지 룸 상대방 프로필 이름 |
|
|
상대방 프로필 사진 URL |
|
|
메세지 룸 생성 시각 |
|
|
요청 페이지 정보 |
|
|
요청 페이지 - 0 = 1 페이지 |
|
|
페이지당 요청 회원 |
|
|
총 멤버 |
|
|
생성된 총 페이지 |
7.4. 특정 메세지 룸 전체 메세지 조회
GET /messages/rooms/1/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
프로필 식별자 |
|
메세지 룸 식별자 |
Name | Description |
---|---|
|
AccessToken |
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 1125
{
"data" : {
"messageRoomId" : 1,
"createAt" : "2023-04-25T00:31:15.203259",
"tutorId" : 1,
"tutorName" : "너에게",
"tuteeId" : 1,
"tuteeName" : "나에게",
"tutoringId" : 1,
"messages" : [ {
"messageRoomId" : 1,
"messageId" : 1,
"senderId" : 1,
"senderName" : "홍길동",
"receiverId" : 1,
"receiverName" : "김코딩",
"messageContent" : "아버지를 아버지라 부르지 못하고",
"createAt" : "2023-04-25T00:31:15.203216"
}, {
"messageRoomId" : 1,
"messageId" : 1,
"senderId" : 1,
"senderName" : "홍길동",
"receiverId" : 1,
"receiverName" : "김코딩",
"messageContent" : "아버지를 아버지라 부르지 못하고",
"createAt" : "2023-04-25T00:31:15.203236"
}, {
"messageRoomId" : 1,
"messageId" : 1,
"senderId" : 1,
"senderName" : "홍길동",
"receiverId" : 1,
"receiverName" : "김코딩",
"messageContent" : "아버지를 아버지라 부르지 못하고",
"createAt" : "2023-04-25T00:31:15.203243"
} ]
}
}
{
"data" : {
"messageRoomId" : 1,
"createAt" : "2023-04-25T00:31:15.203259",
"tutorId" : 1,
"tutorName" : "너에게",
"tuteeId" : 1,
"tuteeName" : "나에게",
"tutoringId" : 1,
"messages" : [ {
"messageRoomId" : 1,
"messageId" : 1,
"senderId" : 1,
"senderName" : "홍길동",
"receiverId" : 1,
"receiverName" : "김코딩",
"messageContent" : "아버지를 아버지라 부르지 못하고",
"createAt" : "2023-04-25T00:31:15.203216"
}, {
"messageRoomId" : 1,
"messageId" : 1,
"senderId" : 1,
"senderName" : "홍길동",
"receiverId" : 1,
"receiverName" : "김코딩",
"messageContent" : "아버지를 아버지라 부르지 못하고",
"createAt" : "2023-04-25T00:31:15.203236"
}, {
"messageRoomId" : 1,
"messageId" : 1,
"senderId" : 1,
"senderName" : "홍길동",
"receiverId" : 1,
"receiverName" : "김코딩",
"messageContent" : "아버지를 아버지라 부르지 못하고",
"createAt" : "2023-04-25T00:31:15.203243"
} ]
}
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
메세지 룸 식별자 |
|
|
메세지 룸 생성 시각 |
|
|
튜터 프로필 식별자 |
|
|
튜터 이름 |
|
|
튜티 프로필 식별자 |
|
|
튜티 이름 |
|
|
과외 식별자 |
|
|
메세지 리스트 |
|
|
메세지 룸 식별자 |
|
|
메세지 식별자 |
|
|
보내는 프로필 식별자 |
|
|
보내는 프로필 이름 |
|
|
받는 프로필 식별자 |
|
|
받는 프로필 이름 |
|
|
메세지 내용 |
|
|
메세지 생성 시각 |
7.5. 특정 메세지 룸 삭제
DELETE /messages/rooms/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
메세지 룸 식별자 |
Name | Description |
---|---|
|
AccessToken |
HTTP/1.1 204 No Content
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
8. Image
8.1. 프로필 이미지 등록 및 수정
-
PATCH 동일한 조건으로 요청 가능
$ curl 'http://localhost:8080/upload/profile-image/1' -i -X POST \
-H 'Content-Type: multipart/form-data;charset=UTF-8' \
-H 'Authorization: Access Token Value' \
-F 'image=@test.jpg'
Name | Description |
---|---|
|
AccessToken |
HTTP/1.1 201 Created
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN
Content-Length: 374
{
"data" : [ {
"profileImageId" : 1,
"url" : "https://www.google.com/url?sa=i&url=http%3A%2F%2Fm.blog.naver.com%2Fcjswodnajs%2F222138892587&psig=AOvVaw0Ef_d9Jqh-dQm9Q7RRDiIg&ust=1673341195393000&source=images&cd=vfe&ved=0CA8QjRxqFwoTCMjWyO2PuvwCFQAAAAAdAAAAABAE",
"createAt" : "2023-04-25T00:31:13.726719",
"updateAt" : "2023-04-25T00:31:13.726738"
} ]
}
{
"data" : [ {
"profileImageId" : 1,
"url" : "https://www.google.com/url?sa=i&url=http%3A%2F%2Fm.blog.naver.com%2Fcjswodnajs%2F222138892587&psig=AOvVaw0Ef_d9Jqh-dQm9Q7RRDiIg&ust=1673341195393000&source=images&cd=vfe&ved=0CA8QjRxqFwoTCMjWyO2PuvwCFQAAAAAdAAAAABAE",
"createAt" : "2023-04-25T00:31:13.726719",
"updateAt" : "2023-04-25T00:31:13.726738"
} ]
}
Path | Type | Description |
---|---|---|
|
|
결과 데이터 |
|
|
프로필 이미지 식별자 |
|
|
이미지 URL |
|
|
생성 시각 |
|
|
수정 시각 |
8.2. 프로필 이미지 삭제
DELETE /upload/profile-image/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token Value
Accept: application/json
Host: localhost:8080
Parameter | Description |
---|---|
|
프로필 식별자 |
Name | Description |
---|---|
|
AccessToken |
HTTP/1.1 204 No Content
Access-Control-Allow-Methods: GET, POST, DELETE, PATCH, OPTIONS
Access-Control-Max-Age: 3600
Access-Control-Expose-Headers: Authorization, userId, userStatus
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Key, Authorization, Authorization, userId, userStatus
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: SAMEORIGIN