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 |