배 지원 closed issue #5: Notice Board - Get,Post at 배 지원 / finalproject-baejiwon

배 지원
2023-01-12T07:13:35Z

Notice Board - Get,Post(게시물 작성, 조회, 리스트)

DB ERD

1. API 명세서

종류 | Url
기본 | /api/v1
포스트 | /posts

2. 게시물 조회(상세 내역)
(1) api => GET/posts/{postsId}
(2) 구성 : id, 제목, 작성자, 작성날짜, 수정날짜, 내용 (3) Json 형식입력 및 반환 (4) 회원, 비회원 모두 조회 가능

Response

{
"resultCode":"SUCCESS",
"result":{
"id" : 1,
"title" : "title1",
"body" : "body",
"userName" : "user1",
"createdAt" : yyyy-mm-dd hh:mm:ss,
"lastModifiedAt" : yyyy-mm-dd hh:mm:ss
}
}

3. 게시물 리스트
(1) api => GET/posts
(2) 구성 : 제목, 글쓴이, 마지막 수정날짜 출력 (3) 최신 순으로 20개씩 표시 (Pageable 사용) (4) Json 형식입력 및 반환 (5) 회원, 비회원 모두 조회 가능 (6) 포스트 클릭시 상세내역 페이지 이동 (7) 반환값은 Page형식으로 하되 Page -> Page로 형식을 바꾸어 반환한다. Response

{
"resultCode": "SUCCESS",
"result": {
"content": [
{
"id": 10,
"title": "글이 들어온다아아아",
"body": "글들어온다아앙",
"userName": "손흥민",
"createdAt": "2022/12/22 10:43:25",
"lastModifiedAt": "2022/12/22 10:43:25"
},
{
"id": 9,
"title": "`12`1",
"body": "2`12`12`12",
"userName": "손흥민",
"createdAt": "2022/12/22 10:42:44",
"lastModifiedAt": "2022/12/22 10:42:44"
},
{
"id": 8,
"title": "오늘은 더 추워",
"body": "집이 최고",
"userName": "손흥민",
"createdAt": "2022/12/22 10:08:10",
"lastModifiedAt": "2022/12/22 10:08:10"
},
{
"id": 6,
"title": "오늘 춥네요",
"body": "눈이 엄청왔어요",
"userName": "string",
"createdAt": "2022/12/21 13:29:02",
"lastModifiedAt": "2022/12/21 13:29:02"
}
],
"pageable": "INSTANCE",
"last": true,
"totalPages": 1,
"totalElements": 4,
"size": 4,
"number": 0,
"sort": {
"empty": true,
"sorted": false,
"unsorted": true
},
"first": true,
"numberOfElements": 4,
"empty": false
}
}

4. 게시물 작성
(1) api => POST/posts
(2) 관리자와 회원만 작성가능(비회원 작성 불가) (3) Json 형식입력 및 반환 (4) 포스트 작성시 예외처리

인증 실패(JWT를 Bearer Token으로 보내지 않은 경우)

JWT가 유효하지 않은 경우 Request

{
"title" : "title1",
"body" : "body1"
}

Response

{
"resultCode":"SUCCESS",
"result":{
"message":"포스트 등록 완료",
"postId":0
}
}