-
질문 생성
- title이 존재해야한다.
- contents가 존재해야한다.
- responderId가 존재할 경우 해당 아이디를 가진 회원이 존재해야한다. (회원 기능과 함께 개발)
-
질문 조회
- 전체 조회
- 단건 조회
-
질문 수정
- 요청의 id와 일치하는 질문이 존재해야한다.
- title, contents, responderId는 기존 값과 같을 수 없다.
-
질문 삭제
- 요청의 id와 일치하는 질문이 존재해야한다.
POST /questions
Authorization : 토큰
Request-Body
{
"title" : string
"contents" : string
"responderId" : integer || null
}
201 CREATED Location : /questions/{id}
body
{
"id" : integer
"title" : string
"contents" : string
"responderId" : integer || null
"createdAt" : string
"lastModifiedAt" : string
}
GET /questions
200 OK
body
[
{
"id" : integer
"title" : string
"contents" : string
"responderId" : integer || null
"createdAt" : string
"lastModifiedAt" : string
},
...
]
GET /questions/{id}
200 OK
body
{
"id" : integer
"title" : string
"contents" : string
"responderId" : integer || null
"createdAt" : string
"lastModifiedAt" : string
}
PUT /questions/{id}
Authorization : 토큰
Request-Body
{
"title" : string
"contents" : string
"responderId" : integer || null
}
200 OK
{
"id" : integer
"title" : string
"contents" : string
"responderId" : integer || null
"createdAt" : string
"lastModifiedAt" : string
}
DELETE /questions/{id}
Authorization : 토큰
no body
204 NO-CONTENTS
-
답변 생성
- contents가 존재해야 한다.
- 답변을 달 해당 questionId가 존재해야 한다.
-
답변 전체 조회
- questionId가 존재해야 한다.
-
답변 수정
- questionId가 존재해야 한다.
- 요청의 id와 일치하는 답변이 존재해야한다.
- contents는 기존 값과 같을 수 없다.
-
답변 삭제
- questionId가 존재해야 한다.
- 요청의 id와 일치하는 답변이 존재해야한다.
POST /questions/{id}/answers Authorization : 토큰
Request-Body
{
"contents" : string
}
201 CREATED
LOCATION : /questions/{id}/answers/{id}
{
"id" : integer
"questionId": integer
"contents" : string
"createdAt" : string
"lastModifiedAt" : string
}
GET /questions/{questionId}/answers
200 OK
body
[{
"id" : integer
"questionId": integer
"contents" : string
"createdAt" : string
"lastModifiedAt" : string
},
{}...]
PUT /questions/{questionId}/answers/{answerId}
Authorization : 토큰
Request-Body
{
"contents": string
}
200 OK
{
"id" : integer
"questionId": integer
"contents" : string
"createdAt" : string
"lastModifiedAt" : string
}
DELETE /questions/{questionId}/answers/{answerId}
Authorization : 토큰
no body
204 NO-CONTENTS