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메소드를 사용한다.
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 |