일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 체인의정석
- ethers v6
- chainlink 설명
- 프록시배포구조
- 머신러닝기초
- multicall
- 컨트렉트 배포 자동화
- vue기초
- rust 기초
- 스마트컨트렉트 예약어 함수이름 중복
- 깃허브명령어
- Vue.js
- 스마트컨트렉트 함수이름 중복 호출
- 러스트기초
- ethers websocket
- ethers typescript
- SBT표준
- 러스트 기초
- nestjs 튜토리얼
- 스마트컨트렉트테스트
- 러스트 기초 학습
- 컨트렉트 동일한 함수이름 호출
- ambiguous function description
- Vue
- ethers type
- ethers
- 스마트컨트렉트프록시
- nest.js설명
- git rebase
- 스마트 컨트렉트 함수이름 중복
- Today
- Total
체인의정석
Nest.js) API 설계를 위한 피드백- 조회기능 본문
API 설계를 하였는데 내가 설계한 부분은 그냥 data 만 들어간 부분이였다. 따라서 API의 응답도 구체화 시켜서 더 상세하게 설계하기로 하였다. 구현에서 다시 설계로 돌아와서 살펴보겠다.
조회할때도 상황에 따라서 GET과 POST를 구분한다.
상황에 따라서 get에 대한 경우와 post에 대한 경우를 구분한다.
get에 대한 부분은 파라미터가 하나일 때 사용하면 괜찮다.
POST인 경우 여러개의 입력값을 받아서 복잡한 쿼리를 실행 할 때 POST를 사용한다.
설계시에 이를 고려하여 설뎨를 해야 한다.
결과 값에 대한 객체를 만들어 주어야 한다.
결과 값에 대한 객체를 만들어주기 위하여 전송하는 데이터는 data로 두고 그 외에도 code 와 message를 리턴해 준다.
각 예외 상황에 맞게 알맞은 에러 메세지를 보내주어야 한다.
https://1-7171771.tistory.com/129
위 블로그 글에서 필요한 부분만 빼서 정리해 보았다.
일단은 요청 상태를 간단하게 몇가지만 추려서 표시할 예정이다.
먼저 2XX와 같은 경우 정보를 담는 코드라고 한다.
성공시 : 200 을 내보낼 예정이다.
2XX : Information
200 OK
요청이 성공적으로 완료되었으며, 정보를 함께 반환할 수 있다.
그다음 4XX와 같은 경우 클라이언트에서 정보값이 잘못 들어온 부분인데, 여기에 대해서는 추가할 것이 많이 보인다.
4XX : Client
400 Bad Reqeust
구문이나 메세지에 오류가 있는 경우이다. 가장 많이 쓰인다.
실패시 : 400을 보낼 예정이다
일단은 이렇게만 넣어두고, 나중에 고도화 작업을 할 때 더 추가를 시켜보겠다.
해당 내용을 넣은 응답값에 대한 코드는 다음과 같다.
이런응답은 다음과 같은 문서를 써서 관리한다.
결과적으로 구조를 다시 짠 후 , 각각 응답값을 모두 객체화 시켜서 아래와 같이 체계적인 응답으로 만들었다.
여태까지는 그냥 돌아가게만 만들었는데 이렇게 코드를 체계적으로 짜니까 보기도 좋고 예외상황을 앞뒤로 다 잡아줘서 더 안정성이 높을것 같다.
'개발 > backend' 카테고리의 다른 글
TypeORM - query builder/ find 함수로 쿼리기능 구현 (0) | 2021.10.25 |
---|---|
nest.js) 예외처리 - 이더리움 주소값인지 확인하고 아닐 시 에러리턴 (0) | 2021.10.22 |
class-validator) 이더리움 주소, 비트코인 주소 형태 판별하기 (0) | 2021.10.19 |
Nest.js) 구조와 작업순서 총정리 (0) | 2021.10.19 |
Nest.js) 환경변수 설정하기 (0) | 2021.10.19 |