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
Posted by 게으른거북
: