Network

라우팅

Z00_HWAN_99 2024. 10. 8. 15:15
728x90
반응형

라우팅

  • 웹 서버 URL 경로에 따라서 다른 응답을 처리해 주는 기능

웹 서버 제공

  • 라우팅 : URL 요청을 함수와 매핑시키는 기능.
  • 정적 파일 서비스
  • 템플릿 엔진
  • 요청 데이터 처리(HTTP 요청 : GET, POST, PUT, DELETE)
  • 응답 데이터 처리
  • 파일 업로드
  • 쿠키 / 세션 지원
  • 리다이렉트
  • 에러 페이지
  • 미들 웨어(요청 또는 응답 사이에 공통된 기능을 추가하는 기능)

API(Application Programming Interface)

  • 프로그램에서 다른 프로그램의 기능을 사용할 수 있게 해주는 규약

REST API

  • 자원을 URL에 표현하고 자원을 가져오는 행위를 HTTP 메서드로 표현하는 규칙
  • https://restfulapi.net/ 참고

소스 코드

const express = require("express");
const app = express();
let posts = []; //게시글 리스토 사용할 posts에 빈 리스트 할당

//request.body를 사용하려면 JSON 미들웨어를 사용해야 한다.
app.use(express.json());//JSON 미들웨어를 활성화

//POST 요청시, 컨텐트 타입이 application/x-www-form-urlencoded 인 경우 파싱
app.use(express.urlencoded({extended : true}));

app.get("/", (reqeust, response)=>{// "/"로 요청이 오면 실행
response.json(posts);//게시글 리스트를 JSON 형식으로 보여주겠다.
});

app.post("/posts", (request, response)=>{
const{title, name, text} = request.body;
posts.push({id:posts.length+1, title, name, text, createDt:Date()});
response.json({title, name, text});
});

app.delete("/posts/:id", (request, response) => {
const id = request.params.id;
const filteredPosts = posts.filter((post) => post.id !== +id);//글 삭제 로직
const isLengthChanged = posts.length !== filteredPosts.length;
posts = filteredPosts;

if(isLengthChanged){
response.json("OK");
return;
}
response.json("NOT CHANGED");
});

app.listen(3000, () => {
console.log("welcome board START!")
})

 

터미널

  • curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "title=Owner&name=ZooHwan99&text=건물주 가즈아" http://localhost:3000/posts

결과화면

 

RESTful API

  • REST구조를 사용하는 API이다.
  • REST(Representational State Transfer) : HTTP URL을 통해 자원을 명시하고, HTTP 메서드를 사용하여 자원을 처리한다.
728x90
반응형

'Network' 카테고리의 다른 글

자바스크립트에서 비동기 처리  (0) 2024.10.08
간단한 용어 정리  (0) 2024.10.08
Node 특성  (1) 2024.10.07
REST API Node란  (2) 2024.10.07
웹 아키텍처 분석  (3) 2024.09.08