728x90

참고영상 : Como Programar uma API REST Simples em Golang Parte 5 # 22

 

더보기

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).

 

 

Postman 을 통한 User 정보 삭제(DELETE 테스트) 결과 화면
728x90
Posted by 게으른거북
: