728x90
8주차 주말 - express로 api 서버 만들기
1. 배운 것
- req.query
- req.params
2. 내용 정리
2.1 req.params로 분기하기
// 1. 객체 디스트럭쳐링 할당 사용 예시
app.get('/api/users/:type', async (req, res) => {
let { type } = req.params;
if (type === 'seoul') {
let data = [
{ name: '김철수', city: 'seoul' },
{ name: '이철수', city: 'seoul' },
];
res.send(data);
} else if (type === 'jeju') {
let data = [
{ name: '이동근', city: 'jeju' },
{ name: '박동근', city: 'jeju' },
];
res.send(data);
} else {
res.send('없는 경로입니다.');
}
});
// 2. 객체 디스트럭쳐링 할당 미사용 예시
app.get('/api/sales/:year', async (req, res) => {
if (req.params.year === '2021') {
let data = [
{ product: 'car', amount: 204020 },
{ product: 'notebook', amount: 12520 },
];
res.send(data);
} else if (req.params.year === '2022') {
let data = [
{ product: 'car', amount: 432520 },
{ product: 'notebook', amount: 7689520 },
];
res.send(data);
} else {
res.send('해당 연도의 매출 정보가 없습니다.');
}
});
uuid-apikey 로 api 키 생성하고 값 이용하기
const uuidAPIKey = require('uuid-apikey');
// console.log(uuidAPIKey.create());
const key = {
apiKey: 'Y5VW9EX-WXFMMAE-PMX670A-RYM2PS1',
uuid: 'f177c4bb-e75f-4a29-b53a-6381c7a82b64',
};
app.get('/api/users/:apikey/:type', async (req, res) => {
let { apikey, type } = req.params;
if (!uuidAPIKey.isAPIKey(apikey) || !uuidAPIKey.check(apikey, key.uuid)) {
res.send('올바르지 않은 api 키 입니다.');
} else {
if (type === 'seoul') {
let data = [
{ name: '김철수', city: 'seoul' },
{ name: '이철수', city: 'seoul' },
];
res.send(data);
} else if (type === 'jeju') {
let data = [
{ name: '이동근', city: 'jeju' },
{ name: '박동근', city: 'jeju' },
];
res.send(data);
} else {
res.send('해당 도시의 사용자 정보가 없습니다.');
}
}
});
app.get('/api/sales/:apikey/:year', async (req, res) => {
let { apikey, year } = req.params;
if (!uuidAPIKey.isAPIKey(apikey) || !uuidAPIKey.check(apikey, key.uuid)) {
res.send('올바르지 않은 api 키 입니다.');
} else {
if (year === '2021') {
let data = [
{ product: 'car', amount: 204020 },
{ product: 'notebook', amount: 12520 },
];
res.send(data);
} else if (year === '2022') {
let data = [
{ product: 'car', amount: 432520 },
{ product: 'notebook', amount: 7689520 },
];
res.send(data);
} else {
res.send('해당 연도의 매출 정보가 없습니다.');
}
}
});
참고 자료
- 개발자의 품격 님 유튜브 강의 Node.js에서 API 서버 만들기
3. 리뷰
3.1 좋았던 점
3.2 아쉬웠던 점
3.3 notes
4. 할 일
- [ ] 데일리코딩 ~20
- [ ] 과제
- [ ] 딥다이브 17장 정리
- [ ] 노드교과서 6장 정리
- [ ] 토이프로젝트 - 리액트, express 복습
- [ ] dp 이론정리
728x90
'기록 > 코드스테이츠 프론트엔드' 카테고리의 다른 글
9주 3일차 - 섹션2 회고, 재귀, dp (2) | 2022.06.22 |
---|---|
9주 1일차 - state airline server (1) | 2022.06.20 |
8주 5일차 - Refactor Express (0) | 2022.06.17 |
8주 4일차 - CORS, express (0) | 2022.06.16 |
8주 3일차 - StatesAirline Client (2) | 2022.06.16 |