REST API

김건호·2021년 10월 8일
0
post-custom-banner

get 과 post
GET은 서버의 리소스에서 데이터를 요청할 때, POST는 서버의 리소스를 새로 생성하거나 업데이트할 때 사용한다. POST 는 body 에 데이터를 담아 보내기 때문에 당연히 HTTP 메시지에 body가 존재한다.

app .get ('/ab?cd', (req , res ) => {
  res .send ('Root - GET')
})
Path pattern
app .get (['/abc','/xyz'], (req , res ) => {
  res .send ('Root - GET')
})

배열도 가능

라우터 미니피프로그램 하나의 미들웨어

const  userRouter  = express .Router ()

userRouter .get ('', (req , res ) => {
  res .send ('User list')
})
userRouter .get ('/:id', (req , res ) => {
  res .send ('User info with ID')
})
userRouter .post ('/', (req , res ) => {
  // Register user
  res .send ('User registered.')
})

// user 프리픽스가 있을 때만 동작
app .use ('/users', userRouter )
 
userRouter .param ('id', (req , res , next , value ) => {
  // ID에 따른 처리
  console .log (value )
  next ()
}) // valuse 는 전달받은 ID

const  USERS  = {
  15 : {
    nickname : 'foo',
  },
}

userRouter .param ('id', (req , res , next , value ) => {
  console .log ('id parameter', value )
  // @ts-ignore
  req .user  = USERS [value ]
  next ()
})
userRouter .get ('/:id', (req , res ) => {
  console .log ('userRouter get ID')
  // @ts-ignore
  res .send (req .user )
})

오브젝트

// nickname 업데이트 POST API
userRouter .post ('/', (req , res ) => {
  // req.body: {"nickname" : "bar"}
  // @ts-ignore
  const  {user }=req
  const  {nickname }=req .body

  user .nickname =nickname
  res .send (`user nickname updated: ${nickname }`)
})

http POST localhost:5000/users/15/nickname nickname=xxx

익스프레스 어떤요청이 오던간에 무조건 body를 파싱하지 않음
해결도구 - > npm install body-parser

사용법

app .use (express .json ())
profile
Ken, 🔽🔽 거노밥 유튜브(house icon) 🔽🔽
post-custom-banner

0개의 댓글