Golang+Angular+MariaDB #6 Response 세팅
Development/Go+Angular+MariaDB 2021. 2. 1. 22:29 |728x90
참고영상 : Como Programar uma API REST Simples em Golang Parte 6 - Responses # 23
더보기
main.go 수정
이전 내용에 추가 및 수정
* Response 구조체 추가
* Response 함수 추가
* REST 관련 함수 수정
package main
import ( ... )
type User struct { ... }
var users = []User{ ... }
// Response 구조체 선언
type Response struct {
Method string `json:"method`
Message string `json:"message`
Status int `json:"status`
}
// Response 데이터 전달을 위한 함수
func NewResponse(method, message string, status int) Response {
return Response{Method: method, Message: message, Status: status}
}
func HttpInfo(r *http.Request) { ... }
// Content-Type을 "application/json"으로 설정하여 JSON 전달
func setJsonHeader(w http.ResponseWriter) {
w.Header().Set("Content-Type", "application/json")
}
func main() {
...
}
func getUsers(w http.ResponseWriter, r *http.Request) {
...
}
// 특정 user 정보 전달
func getUser(w http.ResponseWriter, r *http.Request) {
...
// 수정
//json.NewEncoder(w).Encode(&User{})
json.NewEncoder(w).Encode(NewResponse(r.Method, "failed", 400))
}
// user 정보 추가
func postUser(w http.ResponseWriter, r *http.Request) {
...
if err != nil {
//log.Fatal(err)
// 수정
json.NewEncoder(w).Encode(NewResponse(r.Method, "failed", 400))
return
}
...
// 수정
//json.NewEncoder(w).Encode(users)
json.NewEncoder(w).Encode(NewResponse(r.Method, "success", 201))
}
// user 정보 수정
func putUser(w http.ResponseWriter, r *http.Request) {
...
for index, _ := range users {
if users[index].Id == id {
users[index] = user
// 수정
//json.NewEncoder(w).Encode(user)
json.NewEncoder(w).Encode(NewResponse(r.Method, "success", 200))
return
}
}
// 수정
//json.NewEncoder(w).Encode(&User{})
json.NewEncoder(w).Encode(NewResponse(r.Method, "failed", 400))
}
// user 정보 삭제
func deleteUser(w http.ResponseWriter, r *http.Request) {
...
for index, _ := range users {
if users[index].Id == id {
users = append(users[:index], users[index+1:]...)
// 수정
//json.NewEncoder(w).Encode(users)
json.NewEncoder(w).Encode(NewResponse(r.Method, "success", 200))
return
}
}
// 수정
//json.NewEncoder(w).Encode(&User{})
json.NewEncoder(w).Encode(NewResponse(r.Method, "failed", 400))
}
REST에 대한 Respon요청 주소 URI를 인자로 받아 Response를 반환하는데, 사용자 임의로 내용(Message), 상태(Status)를 정의하여 전달할 수 있습니다.
728x90
'Development > Go+Angular+MariaDB' 카테고리의 다른 글
Golang+Angular+MariaDB #8 Angular 기본 세팅 (0) | 2021.02.02 |
---|---|
Golang+Angular+MariaDB #7 Handlers CORS 세팅 (0) | 2021.02.02 |
Golang+Angular+MariaDB #5 User 정보 삭제 (0) | 2021.02.01 |
Golang+Angular+MariaDB #4 User 정보 수정 (0) | 2021.02.01 |
Golang+Angular+MariaDB #3 User 정보 등록 (0) | 2021.02.01 |