Golang+Angular+MariaDB #4 User 정보 수정
Development/Go+Angular+MariaDB 2021. 2. 1. 21:01 |728x90
참고영상 : Como Programar uma API REST Simples em Golang Parte 4 # 21
더보기

Postman 을 통한 User 정보 수정(PUT 테스트) 결과 화면
main.go 수정
이전 내용에 추가 및 수정
* user 데이터 수정(put) 함수 추가
* 핸들러 로직 추가
package main
import (
...
)
type User struct { ... }
var users = []User{ ... }
func HttpInfo(r *http.Request) { ... }
func setJsonHeader(w http.ResponseWriter) { ... }
func main() {
fmt.Println("Api Connected Port 3000....")
r := mux.NewRouter().StrictSlash(true)
r.HandleFunc("/users", getUsers).Methods("GET")
r.HandleFunc("/users/{id}", getUser).Methods("GET")
r.HandleFunc("/users", postUser).Methods("POST")
// user 정보 수정
r.HandleFunc("/users/{id}", putUser).Methods(("PUT"))
log.Fatal(http.ListenAndServe(":3000", r))
}
func getUsers(w http.ResponseWriter, r *http.Request) {
...
}
func getUser(w http.ResponseWriter, r *http.Request) {
...
}
func postUser(w http.ResponseWriter, r *http.Request) {
...
}
// 추가 : user 정보 수정
func putUser(w http.ResponseWriter, r *http.Request) {
setJsonHeader(w)
HttpInfo(r)
params := mux.Vars(r)
id, _ := strconv.Atoi(params["id"])
body, _ := ioutil.ReadAll(r.Body)
var user User
err := json.Unmarshal(body, &user)
if err != nil {
log.Fatal(err)
}
for index, _ := range users {
if users[index].Id == id {
users[index] = user
json.NewEncoder(w).Encode(user)
return
}
}
json.NewEncoder(w).Encode(&User{})
}

728x90
'Development > Go+Angular+MariaDB' 카테고리의 다른 글
| Golang+Angular+MariaDB #6 Response 세팅 (0) | 2021.02.01 |
|---|---|
| Golang+Angular+MariaDB #5 User 정보 삭제 (0) | 2021.02.01 |
| Golang+Angular+MariaDB #3 User 정보 등록 (0) | 2021.02.01 |
| Golang+Angular+MariaDB #2 특정 User 정보 가져오기 (0) | 2021.02.01 |
| Golang+Angular+MariaDB #1 Go 기본 세팅 (0) | 2021.02.01 |