GET /user/:id
유저한명 정보
success
• id가 1인 유저 객체를 반환한다
error
• id가 숫자가 아닐경우 400으로 응답한다
• id로 유저를 찾을수 없을 경우 404로 응답한다
이번에는 쿼리를 사용하지 않고 id 식별자로 구분해볼거다
const express = require('express')
const logger = require('morgan')
const app = express()
const users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bek' },
{ id: 3, name: 'Chris' }
]
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.get('/users', (req, res) => {
req.query.limit = req.query.limit || 10; //limit에 값이 없다면 0을넣자
const limit = parseInt(req.query.limit, 10);
if (Number.isNaN(limit)) {
res.status(400).end();
}
else {
res.json(users.slice(0, limit));
}
})
app.get('/users/:id', (req,res) => { //이 아이디 부분은 다이나믹하게 들어오는데 라우트 핸들러로 id 값으로 그냥 인식
//id 값을 얻어낸다 이번에는 쿼리로 안가져오고 params로 가져온다 총 3가지임 쿼리 바디 파람스
// '/users/:id' -> path라고함
const id = parseInt(req.params.id, 10) // 10 진수로 변환
if (Number.isNaN(id)){
return res.status(400).end()
}
// users 배열 조회
const user = users.filter(user => user.id === id)[0] //필터함수는 어레이를 다 하나씩 돌면서 비교하고 같은것들만 어레이로 반환함 그래서 첫번쨰에 들어있을꺼니간 [0]을 사용함
if (!user){
return res.status(404).end()
}
res.json(user)
})
module.exports = app
DELETE /user/:id
유저삭제
success
• 204를 응답한다.
error
• id가 숫자가 아닐경우 400으로 응답한다
POST /users
success
• 201 상태코드를 반환한다
• 생성된 유저 객체를 반환한다
• 입력한 name을 반환한다
error
• name 파라매터 누락시 400을 반환한다
• name이 중복일 경우 409를 반환한다
PUT /users/
success
• 변경된 name을 응답한다
error
• 정수가 아닌 id일 경우 400 응답
• name이 없을 경우 400 응답
• 없는 유저일 경우 404 응답
• 이름이 중복일 경우 409 응답
'NodeJs' 카테고리의 다른 글
TDD[7] 코드 리팩토링 및 데이터베이스 연동 (0) | 2021.04.01 |
---|---|
TDD[5] TDD로 API 서버 개발 (0) | 2021.03.31 |
TDD[4] TDD 이해 및 환경 구축 (0) | 2021.03.31 |
TDD[3] REST API 이해와 설계 (0) | 2021.03.31 |
TDD[2] Express.js 역할 및 구조의 이해 (0) | 2021.03.31 |