Go - Restful 하게 micro web service 만들기
728x90
도메인에서 DB Table 1:1 구조체 만들기
저장소 Interface 만들기
해당 RepositoryDB 에 receive 함수 구현하기
DTO 정의하기
POST method 가 왔을 때 Request 로 받는 값 정의, Response 로 Client 에게 응답 값 정의
Service 구현
Service 는 Handler 를 통해 DTO(Request dto) 를 받아서 domain tpye 으로 repository 에 값을 처리하고 Response dto 로 Handler 에게 처리된 값을 넘긴다.
Account Service Interface 구현
AccountService 는 Handler 에서 직접 구현
NewAccountService는 app.go 에서 Handler func로 사용
handler 에서 recive 함수 구현
Request 에서 넘어온 데이터를 파싱하여 마샬링합니다.
각종 error 처리를 하고 service 의 NewAccount로 마샬링된 데이터를 넘깁니다.
주의할점 : Handler 에서 구현된 NewAccount reciver 는 client 와 첫번째로 통신하는 함수입니다. 이 함수는 Client 에서 넘어온 데이터를 database 에 잘 넣기위해 데이터를 마샬링하고 service 로 가공된 데이터를 넘깁니다.
Service 로 넘어가기전에 데이터 validation 체크하기
DTO 에서 recive 를 만들어 규격에 위반하는 데이터가 들어왔을 시 error 를 리턴하는 함수를 만듭니다.
service NewAccount
Handler NewAccount 에서 마샬링된 data를 받아서 validation 체크를 하고 error 가 없으면 domain 구조체를 만들어 repository 에 저장하고 저장된 결과를 반환합니다.
Validation 에 걸렸을때
잘 저장되었을 때
728x90
'Go > Go - web' 카테고리의 다른 글
Go - Response body 를 Close 해야하는 이유 (0) | 2022.04.26 |
---|---|
Go - 입금 및 출금 API 구현 하기 (transaction && rollback) (0) | 2021.10.11 |
댓글
이 글 공유하기
다른 글
-
Go - Response body 를 Close 해야하는 이유
Go - Response body 를 Close 해야하는 이유
2022.04.26 -
Go - 입금 및 출금 API 구현 하기 (transaction && rollback)
Go - 입금 및 출금 API 구현 하기 (transaction && rollback)
2021.10.11