on
29 :: 미들웨어, MVC, REST API, Postman
29 :: 미들웨어, MVC, REST API, Postman
728x90
엘리스 SW 엔지니어 트랙 29일차
온라인 강의날
웹과 Express.js 좀 더 깊이 들어가는날
Middleware(미들웨어)
Express.js 동작의 핵심
HTTP 요청
-----------
미들웨어
여기서 일어나는 함수
-----------
HTTP 응답
next가 없으면 다음으로 안넘어간다
Application Middleware 예시
app.use((req, res, next) => { console.log(`Request ${req.path}`); next() }) app.use(auth) // '/' 슬래시가 HTTP 요청 // 그럼 맨 위부터 미들웨어 실행 app.get('/', (req, res, next) =>{ res.send('Hello Express') })
Router Middleware 사용 예시
app 객체에 라우터가 적용되면
라우터의 미들웨어가 순서대로 실행된다
오류처리 미들웨어(Error Handling Middleware) 사용 예시
next안에 인자가 있으면
중간은 건너뛰고
err, req, res, next를 인자로 가진
오류 처리 미들웨어가 바로 실행된다
// error handling middleware app.use((req, res, next) => { if(!isAdmin(req)) { // next안에 인자가 있으면 오류처리 미들웨어가 바로 실행 next(new Error('Not Authorized')) return } next() }) app.get('/', (req, res, next) =>{ res.send('Hello Express') }) app.use((err, req, res, next) => { res.send('Error Occurred') })
함수형 미들웨어(Functional Middleware) 사용 예시
동일한 로직에 설정 값만 다르게
미들웨어를 사용하고 싶을 경우 사용
// 함수형 미들웨어 const auth = (memberType) => { return (req, res, next) => { if(!checkMember(req, memberType)) { next(new Error(`member is not ${memberType}`)) return } } next() } app.use('/admin', auth('admin'), adminRouter) app.use('/users', auth('member'), adminRouter)
이미 만들어진 다양한 미들웨어 사용가능
npm 저장소나 Express.js 홈페이지
Express.js 미들웨어 링크 => https://expressjs.com/en/resources/middleware.html
REST API (RESTful API)
REST 아키텍쳐를 준수하는 웹 API
REST( RE presentation S tate T ransfer)
웹에서 자료를 전송하기 위한 표현 방법
URL로 자원 표현 방법 과
HTTP method로 API 동작 정의 만 사용해도
훌륭한 REST API 구현 가능
JSON
J ava S cript O bject N otation
객체를 웹 API 통해서 문자열로 전달하기 위해 사용
통신 오버헤드가 엄청 작은 표현 방법
MVC
대표적인 프로젝트 구성 패턴
프로젝트 기능들을 어떻게 분리할지에 대한 방법
M odel - V iew - C ontroller
Model
데이터에 접근 기능 or 데이터 그 자체
데이터 읽기, 쓰기는 Model 통해서만
View
데이터 표현 기능
Controller로 데이터 전달받고
전달받은 데이터 화면에 표시
Controller
Model 통해 데이터 접근
처리 결과 View로 전달
웹 서비스에선 주로 라우팅 함수가 이 기능 수행
Express.js로 REST API 구현
GitHub에 정리 링크=> https://github.com/hjplumtree/Express.js-REST-API-
더 정확한 GitHub 링크 => https://github.com/ChoiKyubum/rest-api-example
Postman
API 테스트 도구
HTTP 요청을 쉽게 작성 테스트
API 문서화 기능 및 다양한 도구 제공
API 문서화
collection 만들기
api request 만들기
document 작성
전체 문서 확인
API 테스트
HTTP Method 설정
query param 사용
path variable 사용
body 사용
어지러운 백엔드
한 눈 팔면 모르고 다 까먹을 것 같다
happy by Andre Hunger #unsplash
from http://forgottenknowledge.tistory.com/210 by ccl(A) rewrite - 2021-12-03 18:02:10