Development/Go+Angular+MariaDB
Golang+Angular+MariaDB #5 User 정보 삭제
게으른거북
2021. 2. 1. 21:56
728x90
참고영상 : Como Programar uma API REST Simples em Golang Parte 5 # 22
더보기

Postman 을 통한 User 정보 삭제(DELETE 테스트) 결과 화면
main.go 수정
이전 내용에 추가 및 수정
* user 데이터 삭제(delete) 함수 추가
* 핸들러 로직 추가
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")
r.HandleFunc("/users/{id}", putUser).Methods(("PUT"))
// user 정보 삭제
r.HandleFunc("/users/{id}", deleteUser).Methods(("DELETE"))
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) {
...
}
func putUser(w http.ResponseWriter, r *http.Request) {
...
}
// 추가 : user 정보 삭제
func deleteUser(w http.ResponseWriter, r *http.Request) {
setJsonHeader(w)
HttpInfo(r)
params := mux.Vars(r)
id, _ := strconv.Atoi(params["id"])
// id값이 일치하는 user 데이터 삭제
for index, _ := range users {
if users[index].Id == id {
users = append(users[:index], users[index+1:]...)
json.NewEncoder(w).Encode(users)
fmt.Println(users)
return
}
}
json.NewEncoder(w).Encode(&User{})
}
users = append(users[:index], users[index+1:]...)
삭제하고자 하는 user 데이터의 index값을 if문으로 체크,
user[index]의 이전 데이터 배열과 user[index]의 이후의 user 데이터 배열을 결합(append).

728x90