응답방법

  • res.send( );
    • ( ) 안에 배열 오브젝트를 입력하면 Json 형태로 응답
    • ( ) 안에 배열, 오브젝으를 string 타입으로 입력하면 문자형태로 응답
  • 상태코드 직접설정해서 응답
    • res.status(200).send();

요청 데이터 사용 방법

  • body 에 있는 데이터 이용
    • req.body
  • Query parameter( /search?key=value)이용
    • req.query
// http://localhost:3000/users?page=1 와 같은 형태로 요청할때 사용
app.get('/users', (req, res) => {
  console.log(req.query); // {page : "1"}
});
  • Path variable
    • req.params
//  http://localhost:3000/users/1 
app.get('/users/:userId', (req, res) => {
  console.log(req.params); // {userId: "1"}
});

✔︎ 라우팅이란

URI 이나 HTTP 요청메소드에  클라이언트가 요청을 했을 때 어떻게 서버가 응답할지 결정하는 것.

 

라우팅이 되었다 →클라이언트가 URI 에 보낸 코드(HTTP Method 를 이용해서 만든)가 정상적으로 작동했다.

 

URI and HTTP METHOD 정보 링크

 

라우팅하는 방법-GitHub링크

 

사용하는 이유??

HTTP response status codes 는  특정 HTTP 요청(HTTP request)이 성공적으로 완료되었는지 확인하기 위해 사용한다.

 

각 번대의 의미

  • 200번대 : 성공
  • 400번대: 클라이언트 실패
  • 500번대 서버 실패

자주?쓰이는 상태별 응답번호

200  :  Ok                                요청이 성공적으로 처리되었다.

  • 로그인, 데이터 조회 성공

201   :  Created                        새로운 리소스가 생성되었다. 

  • 게시글 작성, 회원가입, 댓글 작성 성공

204  :  No content                 응답 본문(Response Body)가 없을때 사용.

  • 게시글 삭제( 응답 본문이 없는 경우에 한함. 몇 개의 게시글이 삭제되었는지 응답해준다면 200 으로 응답 

401 : Unauthorized              로그인 하지않은(인증 되지 않은) 사용자가 요청을 보낸 경우

  • 로그인 시 아이디 또는 비밀번호 틀린경우, Header에 인증된 값(ex. JWT 토큰)을 활용해 요청을 보낸경우

403  : Forbidden    로그인 했지만(인증은 했지만) 접근 권한이 부족한 경우에 403응답

  • 관리자만 접근할 수 있는 API에 ‘일반 사용자의 인증값(ex. JWT 토큰)’을 활용해 요청을 보낸 경우

 

404  : Not Found                  클라이언트가 요청한 리소스를 찾을 수 없는 경우에 반환된다.

  • 존재하지 않는 API에 요청을 보내경우 
  • /product/123 [GET}  -->123인 상품이 존재하지 않는 경우

409  : Conflict                       클라이언트의 요청이 서버의 현재 상태와 충돌하는 경우

  • 중복된 리소시 생성시 : 아이디, 닉네임이 이미 존재하는 경우.
  • 동시에 여러 클라이언트가 동일한 리소스 수정요청을 보낸 경우
  • 이전 요청이 아직 완료되지 않은 경우에 다시 요청을 보낸경우

400  : Bad Request               클라이언트의 요청이 잘못된 경우, 401, 403, 404, 409 응답 코드에 해당되지 않을 때 사용

  • 필수 매개변수가 누락
  • 데이터 형식/타입 이 잘못된 형식
  • 잘못된 쿼리 매개변수가 전달된 경우
  • 요청의 형식이 잘못된 경우 ( 올바른 JSON 포멧이 아닌경우

500  : Internal Server Error  클라이언트에서 요청은 전부 잘 했는데, 서버 문제로 응답을 제대로 못한 경우

  • 클라이언트가 제대로 된 방법으로 요청했는데, 서버에서 예외처리 또는 비지니스 로직 처리를 잘못해서 응답을 하지 못한 경우

 

 

 

 

→ 종류가 너무 많다. 필요한 코드는 아래 참고자료를 보자

 

 

참고자료

- 코드별로 의미설명

https://developer.mozilla.org/en-US/docs/Web/HTTP/Status

 

HTTP response status codes - HTTP | MDN

HTTP response status codes indicate whether a specific HTTP request has been successfully completed. Responses are grouped in five classes:

developer.mozilla.org

 

 HTTP 요청 URI 

  •  URI : 서버한테 요청을 보내는 곳의 주소 ( ex) 우편보낼때 쓰는 주소 같은역할)
    • URI외에도 URL, URN도 있지만 이것은 나중에
  • Query Parameter (=Query string)
    • 리소스를 검색/필터링 하는 경우 사용
    • ?를 이용해서 사용자(?!)가 입력한 데이터를 서버에 전달하여 
    • ?파라미터(key)=값 & 파라미터(key)=값&... 이런식
      • https://velog.io/search?q=dev&username=xxxx
      • https://www.google.com/search?q=variable
const express = require('express');
const app = express();
const port = 3000;

app.get('/users', (req, res) => {
  console.log(req.query);
})

app.listen(port, () => {
  console.log(`서버가 실행됩니다. http://localhost:${port}`);
})
const express = require('express');
const app = express();
const port = 3000;

app.get('/users/:userId', (req, res) => {
  console.log(req.params);
})

app.listen(port, () => {
  console.log(`서버가 실행됩니다. http://localhost:${port}`);
})

 

 HTTP 요청 메서드 

  • GET : 데이터 조회
  • POST : 데이터 생성 ( 결제, 로그인, 회원가입 등)
  • PUT : 특정 데이터 전체를 교체할 때(수정할 때)
  • PATCH : 특정 데이터의 일부를 교체할 때 (수정할 때)
  • DELETE : 데이터를 삭제할 때

     ▶ PUT 과 PATCH 예시 (https://papababo.tistory.com/entry/HTTP-METHOD-PUT-vs-PATCH-%EC%B0%A8%EC%9D%B4%EC%A0%90)

 HTTP 요청 메세지 

  • HTTP Header
  • HTTP Body

Back-end 서버에서 만든 API가 잘 작동하는 지 테스트가 필요한데, 인터넷 창에서는 한계가 있으므로 이때 필요한 것이 아래에 있다↓

 Postman(포스맨) 

사용법링크

 

💽 POSTMAN 사용법 - API 테스트 자동화 고급 활용까지

포스트맨 (POSTMAN) POSTMAN은 API를 개발, 테스트, 공유 및 문서화하는 데 사용되는 API 클라이언트 이다. 엔드 포인트 URL을 입력하는 테스트에 사용되며 서버로 요청을 보내고 서버에서 응답을 받아 a

inpa.tistory.com

 

'프로그래밍 > Node.js' 카테고리의 다른 글

REST API : 경로 Naming, HTTP Method  (0) 2023.07.26
응답방법/요청 데이터 사용법  (0) 2023.07.25
Express Routing(라우팅)  (0) 2023.07.25
HTTP response status codes(상태코드)  (0) 2023.07.24
Express 로 웹서버 구축  (0) 2023.07.14

 feat  :  새로운 기능 추가

 fix   : 버그수정

docs   : 문서수정

 style  : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우

 refactor   : 코드 리팩토링

 test  : 테스트 코드, 리펙토링 테스트 코드 추가

 chore  :  빌드 업무 수정, 패키지 매니저 수정

 

ex) feat: 로그인 기능 추가

 

참고사이트

https://www.conventionalcommits.org/en/v1.0.0/

 

Conventional Commits

A specification for adding human and machine readable meaning to commit messages

www.conventionalcommits.org

https://velog.io/@outstandingboy/Git-%EC%BB%A4%EB%B0%8B-%EB%A9%94%EC%8B%9C%EC%A7%80-%EA%B7%9C%EC%95%BD-%EC%A0%95%EB%A6%AC-the-AngularJS-commit-conventions

 

'프로그래밍 > Git & GitHub' 카테고리의 다른 글

협업을 위한 깃 명령어: 브랜치  (0) 2023.11.30
git add  (0) 2023.07.30
Github로 버전 관리 할때 추천하는 방식  (0) 2023.07.21
.gitignore 작성  (0) 2023.07.18
git push 에러발생  (0) 2023.07.14

+ Recent posts