1. 강의 관리
1.1. 모든 강의 조회 (GET /courses)
1.1.1. 성공
HTTP request
GET /courses HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 412
{
"courses" : [ {
"course_id" : 0,
"course_category" : "Zhuanye",
"course_credit" : 5.0,
"course_name" : "Gaoshu0",
"is_youguan" : 0,
"kaike_yuanxi" : "Xinke",
"review_count" : 0
}, {
"course_id" : 1,
"course_category" : "Zhuanye",
"course_credit" : 5.0,
"course_name" : "Gaoshu1",
"is_youguan" : 0,
"kaike_yuanxi" : "Xinke",
"review_count" : 0
} ]
}
1.2. 강의 추가하기 (POST /courses)
1.2.1. 성공
HTTP request
POST /courses HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Content-Length: 146
Host: localhost:8080
{
"course_name" : "테스트 강의",
"course_credit" : 5.0,
"course_category" : "전공",
"kaike_yuanxi" : "씬커",
"is_youguan" : 0
}
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
1.3. 특정 강의 이름 받아오기 (GET /courses/{id}/name)
1.3.1. 성공
HTTP request
GET /courses/1/name HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 40
{
"course_name" : "테스트 강의"
}
2. 리뷰 관리
2.1. 특정 강의의 리뷰 보기 (GET /courses/{id}/reviews)
2.1.1. 성공
HTTP request
GET /courses/1/reviews HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 706
{
"reviews" : [ {
"review_id" : 1,
"course_id" : 1,
"review_content" : "Test Review 1",
"review_title" : "Title1",
"instructor_name" : "Jiaoshou",
"taken_semyr" : "22-23",
"grade" : "60",
"like_count" : 0,
"review_time" : "2024-04-29T07:26:56.773816088",
"liked" : false,
"updated" : false,
"mine" : false
}, {
"review_id" : 2,
"course_id" : 1,
"review_content" : "Test Review 2",
"review_title" : "Title2",
"instructor_name" : "Jiaoshou",
"taken_semyr" : "22-23",
"grade" : "60",
"like_count" : 0,
"review_time" : "2024-04-29T07:26:56.773850482",
"liked" : false,
"updated" : false,
"mine" : false
} ]
}
2.1.2. 실패
최근 작성한 리뷰가 6개월 이상이거나, 없을경우
HTTP request
GET /courses/1/reviews HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Host: localhost:8080
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 99
{
"message" : "최근 6개월 동안 리뷰를 작성하지 않았습니다.",
"errors" : [ ]
}
2.2. 특정 강의의 리뷰 작성하기 (POST /courses/{id}/reviews)
2.2.1. 성공
HTTP request
POST /courses/50/reviews HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Content-Length: 161
Host: localhost:8080
{
"review_title" : "Test Review from TestCode",
"instructor_name" : "Jiaoshou",
"taken_semyr" : "1stSem",
"review_content" : "Good!",
"grade" : "100"
}
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
2.3. 리뷰 좋아요 (PUT /reviews/{id}/like)
2.3.1. 성공
HTTP request
PUT /reviews/1/like HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 41
{
"like_count" : 5,
"liked" : false
}
2.4. 내 리뷰 보기 (GET /reviews/me)
2.4.1. 성공
HTTP request
GET /reviews/me HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 1388
{
"reviews" : [ {
"review_id" : 1,
"course_id" : 1,
"review_content" : "Test Review 1",
"review_title" : "Title1",
"instructor_name" : "Jiaoshou",
"taken_semyr" : "22-23",
"grade" : "60",
"like_count" : 0,
"review_time" : "2024-04-29T07:26:56.891496554",
"liked" : false,
"updated" : false,
"mine" : true
}, {
"review_id" : 2,
"course_id" : 1,
"review_content" : "Test Review 2",
"review_title" : "Title2",
"instructor_name" : "Jiaoshou",
"taken_semyr" : "22-23",
"grade" : "60",
"like_count" : 0,
"review_time" : "2024-04-29T07:26:56.891511402",
"liked" : false,
"updated" : false,
"mine" : true
}, {
"review_id" : 3,
"course_id" : 1,
"review_content" : "Test Review 3",
"review_title" : "Title3",
"instructor_name" : "Jiaoshou",
"taken_semyr" : "22-23",
"grade" : "60",
"like_count" : 0,
"review_time" : "2024-04-29T07:26:56.891520729",
"liked" : false,
"updated" : false,
"mine" : true
}, {
"review_id" : 4,
"course_id" : 1,
"review_content" : "Test Review 4",
"review_title" : "Title4",
"instructor_name" : "Jiaoshou",
"taken_semyr" : "22-23",
"grade" : "60",
"like_count" : 0,
"review_time" : "2024-04-29T07:26:56.891528554",
"liked" : false,
"updated" : false,
"mine" : true
} ]
}
2.5. 리뷰 수정 (PUT /reviews/{id})
2.5.1. 성공
HTTP request
PUT /reviews/1 HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Content-Length: 150
Host: localhost:8080
{
"review_title" : "new title",
"instructor_name" : "jiaoshou",
"taken_semyr" : "18-19",
"review_content" : "new content",
"grade" : "100"
}
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
2.5.2. 실패
권한이 없는 경우
HTTP request
PUT /reviews/1 HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Content-Length: 140
Host: localhost:8080
{
"review_title" : "new title",
"instructor_name" : null,
"taken_semyr" : null,
"review_content" : "new content",
"grade" : null
}
HTTP response
HTTP/1.1 403 Forbidden
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 61
{
"message" : "권한이 없습니다.",
"errors" : [ ]
}
2.6. 리뷰 삭제 (DELETE /reviews/{id})
2.6.1. 성공
HTTP request
DELETE /reviews/8 HTTP/1.1
Authorization: any
Host: localhost:8080
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
2.6.2. 실패
권한이 없는 경우
HTTP request
DELETE /reviews/8 HTTP/1.1
Authorization: any
Host: localhost:8080
HTTP response
HTTP/1.1 403 Forbidden
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 61
{
"message" : "권한이 없습니다.",
"errors" : [ ]
}
3. 게시글 관리
3.1. 모든 게시글 보기 (GET /posts)
3.1.1. 성공
HTTP request
GET /posts?page=1 HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 3267
{
"posts" : [ {
"post_id" : 11,
"post_title" : "title_11",
"post_category" : "자유",
"post_comments" : 68,
"post_likes" : 28,
"post_time" : "2024-04-29T07:26:56.341971084",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 12,
"post_title" : "title_12",
"post_category" : "중고거래",
"post_comments" : 80,
"post_likes" : 14,
"post_time" : "2024-04-29T07:26:56.341989749",
"liked" : true,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 13,
"post_title" : "title_13",
"post_category" : "자유",
"post_comments" : 34,
"post_likes" : 95,
"post_time" : "2024-04-29T07:26:56.342001831",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 14,
"post_title" : "title_14",
"post_category" : "질문",
"post_comments" : 43,
"post_likes" : 35,
"post_time" : "2024-04-29T07:26:56.342012681",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 15,
"post_title" : null,
"post_category" : "중고거래",
"post_comments" : 11,
"post_likes" : 56,
"post_time" : "2024-04-29T07:26:56.342020957",
"liked" : false,
"updated" : false,
"reported" : true,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 16,
"post_title" : "title_16",
"post_category" : "자유",
"post_comments" : 56,
"post_likes" : 75,
"post_time" : "2024-04-29T07:26:56.342031306",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 17,
"post_title" : "title_17",
"post_category" : "자유",
"post_comments" : 78,
"post_likes" : 39,
"post_time" : "2024-04-29T07:26:56.342040884",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 18,
"post_title" : "title_18",
"post_category" : "중고거래",
"post_comments" : 3,
"post_likes" : 68,
"post_time" : "2024-04-29T07:26:56.342052255",
"liked" : true,
"updated" : true,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 19,
"post_title" : "title_19",
"post_category" : "자유",
"post_comments" : 96,
"post_likes" : 55,
"post_time" : "2024-04-29T07:26:56.342063686",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 20,
"post_title" : null,
"post_category" : "구인",
"post_comments" : 76,
"post_likes" : 57,
"post_time" : "2024-04-29T07:26:56.342077372",
"liked" : false,
"updated" : false,
"reported" : true,
"view_count" : 0,
"member_id" : 1,
"mine" : false
} ],
"totalPageCount" : 4,
"totalPostCount" : 39
}
3.2. 특정 카테고리 게시글 보기 (GET /posts?page=1&category=free)
유효한 category 값: free(자유), question(질문), trade(중고거래), offer(구인), notice(공지)
3.2.1. 성공
HTTP request
GET /posts?page=2&category=free HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 3261
{
"posts" : [ {
"post_id" : 21,
"post_title" : "title_21",
"post_category" : "자유",
"post_comments" : 34,
"post_likes" : 13,
"post_time" : "2024-04-29T07:26:56.248540184",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 22,
"post_title" : "title_22",
"post_category" : "자유",
"post_comments" : 32,
"post_likes" : 39,
"post_time" : "2024-04-29T07:26:56.248574398",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 23,
"post_title" : "title_23",
"post_category" : "자유",
"post_comments" : 1,
"post_likes" : 42,
"post_time" : "2024-04-29T07:26:56.248587483",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 24,
"post_title" : "title_24",
"post_category" : "자유",
"post_comments" : 83,
"post_likes" : 80,
"post_time" : "2024-04-29T07:26:56.248600096",
"liked" : true,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 25,
"post_title" : "title_25",
"post_category" : "자유",
"post_comments" : 9,
"post_likes" : 93,
"post_time" : "2024-04-29T07:26:56.248611688",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 26,
"post_title" : "title_26",
"post_category" : "자유",
"post_comments" : 78,
"post_likes" : 97,
"post_time" : "2024-04-29T07:26:56.248622408",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 27,
"post_title" : "title_27",
"post_category" : "자유",
"post_comments" : 12,
"post_likes" : 35,
"post_time" : "2024-04-29T07:26:56.248632607",
"liked" : false,
"updated" : true,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 28,
"post_title" : "title_28",
"post_category" : "자유",
"post_comments" : 40,
"post_likes" : 65,
"post_time" : "2024-04-29T07:26:56.248643336",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 29,
"post_title" : "title_29",
"post_category" : "자유",
"post_comments" : 57,
"post_likes" : 20,
"post_time" : "2024-04-29T07:26:56.248653014",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 30,
"post_title" : "title_30",
"post_category" : "자유",
"post_comments" : 95,
"post_likes" : 2,
"post_time" : "2024-04-29T07:26:56.248662382",
"liked" : true,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
} ],
"totalPageCount" : 4,
"totalPostCount" : 39
}
3.3. 특정 게시글 보기 (GET /posts/{id})
3.3.1. 성공
HTTP request
GET /posts/4 HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 315
{
"post_id" : 1,
"post_title" : "title_1",
"post_content" : null,
"post_category" : "자유",
"member_id" : 1,
"post_comments" : 40,
"post_likes" : 57,
"post_time" : "2024-04-29T07:26:56.147846441",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"mine" : false
}
3.4. 게시글 작성하기 (POST /posts)
3.4.1. 성공
HTTP request
POST /posts HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Content-Length: 88
Host: localhost:8080
{
"post_title" : "title",
"post_category" : "자유",
"post_content" : "content"
}
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
3.4.2. 실패
제목에 내용이 없는 경우
HTTP request
POST /posts HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Content-Length: 85
Host: localhost:8080
{
"post_title" : null,
"post_category" : "자유",
"post_content" : "content"
}
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 161
{
"message" : "Invalid input value",
"errors" : [ {
"field" : "postTitle",
"value" : null,
"reason" : "제목을 비우면 안됩니다."
} ]
}
3.5. 내 게시글 보기 (GET /posts/me)
3.5.1. 성공
HTTP request
GET /posts/me?page=1 HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 1671
{
"posts" : [ {
"post_id" : 11,
"post_title" : "title_11",
"post_category" : "자유",
"post_comments" : 52,
"post_likes" : 68,
"post_time" : "2024-04-29T07:26:56.045588564",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 12,
"post_title" : "title_12",
"post_category" : "중고거래",
"post_comments" : 21,
"post_likes" : 91,
"post_time" : "2024-04-29T07:26:56.045641753",
"liked" : true,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 13,
"post_title" : "title_13",
"post_category" : "자유",
"post_comments" : 44,
"post_likes" : 64,
"post_time" : "2024-04-29T07:26:56.045656401",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 14,
"post_title" : "title_14",
"post_category" : "질문",
"post_comments" : 22,
"post_likes" : 58,
"post_time" : "2024-04-29T07:26:56.045670066",
"liked" : false,
"updated" : false,
"reported" : false,
"view_count" : 0,
"member_id" : 1,
"mine" : false
}, {
"post_id" : 15,
"post_title" : null,
"post_category" : "중고거래",
"post_comments" : 57,
"post_likes" : 90,
"post_time" : "2024-04-29T07:26:56.045681718",
"liked" : false,
"updated" : false,
"reported" : true,
"view_count" : 0,
"member_id" : 1,
"mine" : false
} ],
"totalPageCount" : 2,
"totalPostCount" : 14
}
3.6. 게시글 좋아요 (PUT /posts/{id}/like)
3.6.1. 성공
HTTP request
PUT /posts/1/like HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 40
{
"like_count" : 5,
"liked" : true
}
3.7. 게시글 수정 (PUT /posts/{id})
3.7.1. 성공
HTTP request
PUT /posts/1 HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Content-Length: 66
Host: localhost:8080
{
"post_title" : "new title",
"post_content" : "new content"
}
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
3.7.2. 실패
권한이 없는 경우
HTTP request
PUT /posts/1 HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Content-Length: 66
Host: localhost:8080
{
"post_title" : "new title",
"post_content" : "new content"
}
HTTP response
HTTP/1.1 403 Forbidden
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 61
{
"message" : "권한이 없습니다.",
"errors" : [ ]
}
제목에 내용이 없는 경우
HTTP request
PUT /posts/1 HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: any
Content-Length: 55
Host: localhost:8080
{
"post_title" : null,
"post_content" : "content"
}
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 151
{
"message" : "Invalid input value",
"errors" : [ {
"field" : "postTitle",
"value" : null,
"reason" : "제목이 없습니다."
} ]
}
3.8. 게시글 삭제 (DELETE /posts/{id})
3.8.1. 성공
HTTP request
DELETE /posts/7 HTTP/1.1
Authorization: any
Host: localhost:8080
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
3.8.2. 실패
권한이 없는 경우
HTTP request
DELETE /posts/7 HTTP/1.1
Authorization: any
Host: localhost:8080
HTTP response
HTTP/1.1 403 Forbidden
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 61
{
"message" : "권한이 없습니다.",
"errors" : [ ]
}
4. 댓글 관리
4.1. 특정 게시글의 댓글 보기 (GET /community/{id}/comments)
4.1.1. 성공
HTTP request
GET /posts/1/comments HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 2309
{
"comments" : [ {
"comment_id" : 1,
"comment_content" : "content1",
"post_id" : 1,
"comment_like_count" : 9,
"comment_time" : "2024-04-29T07:26:55.42127587",
"liked" : false,
"replies" : [ ],
"updated" : false,
"reported" : false,
"member_id" : 1,
"mine" : true
}, {
"comment_id" : 2,
"comment_content" : "content2",
"post_id" : 1,
"comment_like_count" : 10,
"comment_time" : "2024-04-29T07:26:55.421294896",
"liked" : false,
"replies" : [ ],
"updated" : true,
"reported" : false,
"member_id" : 1,
"mine" : true
}, {
"comment_id" : 3,
"comment_content" : "content3",
"post_id" : 1,
"comment_like_count" : 11,
"comment_time" : "2024-04-29T07:26:55.421309072",
"liked" : true,
"replies" : [ {
"reply_id" : 12,
"reply_content" : "reply content 12",
"reply_like_count" : 6,
"reply_time" : "2024-04-29T07:26:55.421342515",
"liked" : false,
"updated" : true,
"reported" : false,
"member_id" : 1,
"mine" : true
}, {
"reply_id" : 13,
"reply_content" : "reply content 13",
"reply_like_count" : 7,
"reply_time" : "2024-04-29T07:26:55.421354597",
"liked" : false,
"updated" : false,
"reported" : false,
"member_id" : 1,
"mine" : true
}, {
"reply_id" : 14,
"reply_content" : "reply content 14",
"reply_like_count" : 8,
"reply_time" : "2024-04-29T07:26:55.421364426",
"liked" : false,
"updated" : true,
"reported" : false,
"member_id" : 1,
"mine" : true
}, {
"reply_id" : 15,
"reply_content" : "reply content 15",
"reply_like_count" : 9,
"reply_time" : "2024-04-29T07:26:55.421373833",
"liked" : false,
"updated" : false,
"reported" : false,
"member_id" : 1,
"mine" : true
} ],
"updated" : false,
"reported" : false,
"member_id" : 1,
"mine" : true
}, {
"comment_id" : 4,
"comment_content" : "content4",
"post_id" : 1,
"comment_like_count" : 12,
"comment_time" : "2024-04-29T07:26:55.421321546",
"liked" : false,
"replies" : [ ],
"updated" : true,
"reported" : false,
"member_id" : 1,
"mine" : true
} ]
}
4.2. 특정 게시글의 댓글 작성하기 (POST /community/{id}/comments)
4.2.1. 성공
HTTP request
POST /posts/51/comments HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Content-Length: 29
Host: localhost:8080
{
"content" : "content51"
}
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
4.3. 댓글 좋아요 (PUT /comments/{id}/like)
4.3.1. 성공
HTTP request
PUT /comments/3/like HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 41
{
"like_count" : 5,
"liked" : false
}
4.4. 댓글 수정 (PUT / comments/{id})
4.4.1. 성공
HTTP request
PUT /comments/3 HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Content-Length: 39
Host: localhost:8080
{
"content" : "new comment content"
}
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
4.4.2. 실패
권한이 없는 경우
HTTP request
PUT /comments/3 HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Content-Length: 39
Host: localhost:8080
{
"content" : "new comment content"
}
HTTP response
HTTP/1.1 403 Forbidden
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 61
{
"message" : "권한이 없습니다.",
"errors" : [ ]
}
내용이 없는 경우
HTTP request
PUT /comments/3 HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Content-Length: 22
Host: localhost:8080
{
"content" : null
}
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 159
{
"message" : "Invalid input value",
"errors" : [ {
"field" : "content",
"value" : null,
"reason" : "댓글의 내용이 없습니다."
} ]
}
4.5. 댓글 삭제 (DELETE /comments/{id})
4.5.1. 성공
HTTP request
DELETE /comments/3 HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Host: localhost:8080
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
4.5.2. 실패
권한이 없는 경우
HTTP request
DELETE /comments/3 HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Host: localhost:8080
HTTP response
HTTP/1.1 403 Forbidden
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 61
{
"message" : "권한이 없습니다.",
"errors" : [ ]
}
4.6. 특정 댓글의 대댓글 작성하기 (POST /comments/{id}/reply)
4.6.1. 성공
HTTP request
POST /comments/3/reply HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Content-Length: 33
Host: localhost:8080
{
"content" : "reply content"
}
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
4.6.2. 실패
대댓글에 작성하는 경우
HTTP request
POST /comments/3/reply HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Content-Length: 33
Host: localhost:8080
{
"content" : "reply content"
}
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
Content-Length: 79
{
"message" : "답글에 답글을 달 수 없습니다.",
"errors" : [ ]
}
5. 신고 관리
5.1. 특정 게시글 신고하기 (POST /posts/{id}/report)
5.1.1. 성공
HTTP request
POST /posts/1/report HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Content-Length: 33
Host: localhost:8080
{
"message" : "신고 내용"
}
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0
5.2. 특정 댓글 신고하기 (POST /comments/{id}/report)
5.2.1. 성공
HTTP request
POST /comments/1/report HTTP/1.1
Content-Type: application/json
Content-Type: application/json
Authorization: Bearer aws-cognito-access-token
Content-Length: 33
Host: localhost:8080
{
"message" : "신고 내용"
}
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: 0