Algorithm/코플릿

Server과제

2023. 4. 6. 23:10
목차
  1. Airport API
  2. Flight API
  3. Book API
  4. Advanced

Airport API

공항이름 자동완성

클라이언트에 공항 이름을 검색할 때, 자동 완성 기능이 동작하게 하는 API

http://localhost:3001/airport?query=c

에서 req.query 는


http://localhost:3001/airport?query=c
노란색 부분인 qeury=c를 의미하고

req.query.qeury는

 

http://localhost:3001/airport?query=c
빨간 부분인 c를 의미한다.

 

즉 요청객체의 쿼리 파라미터에 글자를 추가하면

해당 문자열이 포함된 공항목록을 보여준다.

 

위 예제로 get요청을 보낸 뒤 console.log(req.query.qeury)를 확인해보면 터미널에서 확인 할 수 있다.

공항 목록에서 c가 포함된 공항목록을 볼 수 있다.

Flight API

1. 항공편 조회

클라이언트에서 항공편을 조회할때 사용하는 API

http://localhost:3001/flight?departure_times=2021-12-02T12:00:00&arrival_times=2021-12-03T12:00:00

위에서와 마찬가지로 .query는 쿼리 파라미터를 얻을 수 있다.

 

req.query

departure_times=2021-12-02T12:00:00&arrival_times=2021-12-03T12:00:00

 

구조할당분해로 변수를 사용해서 값을 얻을 수 있다.

console.log(departure_times,arrival_times)

2. uuid에 맞는 항공편 조회

클라이언트에서 고유 ID값을 기준으로 항공편을 조회할 때 사용하는 API

http://localhost:3001/flight/af6fa55c-da65-47dd-af23-578fdba40bed

여기서 req.params 는 url에서 콜론(:)으로 표시되는 동적 매개변수를 의미한다.

console.log(req.params)의 결과는 아래와 같다.

Book API

위에서의 코드들과 비슷한 맥락으로 진행

 

1.예약조회

클라이언트에서 모든 예약을 조회할 때 사용하는 API

2.특정 예약자 전화번호에 맞는 예약 조회

3.특정 예약자 전화번호와 항공편 uuid에 맞는 예약 조회

 

4. 예약생성

여기서 막혔었는데 페어분이 도와주셨다 🥹

예약내역인 booking 배열에 새로운 예약을 객체형태로 추가하게 되는데

각 예약에 고유한 값을 주기위해서 uuid키를 첫번째 요소로 추가해준다.

나머지 내용은 요청객체의 body부분을 스프레드문법을 이용해 얕은복사해주면 된다.

 

Advanced

요청된 uuid값과 동일한 uuid 값을 가진 항공편 데이터를 요청된 Body 데이터로 수정

리소스를 대체(수정) 하기때문에 여기서는 PUT메소드를 사용한다. 

chatGPT와 함께 푼 Advanced ... ^^

1. 항공편 목록배열을 slice() 메소드를 이용해서 얕은 복사를 해준다.

2. 복사된 항공편 목록 배열에 forEach메서드를 사용해서

3. if 배열의 요소인 객체 하나하나 uuid키의 값이 같으면

4. 객체의 키값을 || 연산자를 이용해서 요청객체의 body데이터로 바꾸거나 없다면 기존의 객체 값을 넣어준다.

5. 업데이트된 객체요소를 1에서 복사 한 배열에 할당해준다.

6. updatedFlight가 truthly 한 값으면 응답 객체로 전송한다.

'Algorithm > 코플릿' 카테고리의 다른 글

JSON.stringify 와 재귀를 이용한 과제  (0) 2023.04.12
Daily Coding 18  (0) 2023.04.07
Daily Coding 17  (0) 2023.04.06
Daily Coding 16  (2) 2023.04.02
Daily Coding 15  (0) 2023.04.01
  1. Airport API
  2. Flight API
  3. Book API
  4. Advanced
'Algorithm/코플릿' 카테고리의 다른 글
  • JSON.stringify 와 재귀를 이용한 과제
  • Daily Coding 18
  • Daily Coding 17
  • Daily Coding 16
Summer.dev
Summer.dev
프론트엔드 개발자 Summer 입니다! 피드백은 언제나 환영입니다.
Summer.dev
꾸준함이 무기
Summer.dev
전체
오늘
어제
  • 분류 전체보기
    • Projects
      • Next.js board-project
      • MOMO
    • 원티드
    • 우테코 프리코스
    • JavaScript
    • React
    • TypeScript
    • Node.js
    • Algorithm
      • 코플릿
      • 개념정리
    • 네트워크
    • 오류해결
    • 회고
    • 기술면접준비
    • git,github
    • 소소하게 궁금한것
    • Next.js Beta Docs 번역
    • 디자인패턴
    • 트러블슈팅
    • 번역

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 메모이제이션
  • 알고리즘

최근 댓글

최근 글

hELLO · Designed By 정상우.
Summer.dev
Server과제
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.