Golang+Angular+MariaDB #3 User 정보 등록
Development/Go+Angular+MariaDB 2021. 2. 1. 20:13 |728x90
참고영상 : Como Programar uma API REST Simples em Golang Parte 3 # 20
더보기

크롬 웹 스토어 - Postman

Postman - Get 결과 화면

Postman - Post 과정 및 결과 화면
main.go 수정
이전 내용에 추가 및 수정.
* import 추가
* user 데이터 등록(post) 함수 추가
* 핸들러 로직 추가
package main
import (
...
"io/ioutil"
...
)
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")
// user 데이터 추가
r.HandleFunc("/users", postUser).Methods("POST")
log.Fatal(http.ListenAndServe(":3000", r))
}
func getUsers(w http.ResponseWriter, r *http.Request) {
...
}
func getUser(w http.ResponseWriter, r *http.Request) {
...
}
// 추가 : user 정보 추가
func postUser(w http.ResponseWriter, r *http.Request) {
setJsonHeader(w)
HttpInfo(r)
body, _ := ioutil.ReadAll(r.Body)
var user User
err := json.Unmarshal(body, &user)
defer r.Body.Close()
if err != nil {
log.Fatal(err)
}
users = append(users, user)
json.NewEncoder(w).Encode(users)
}
body, _ := ioutil.ReadAll(r.Body)
r.Body의 값에서 EOF를 만날 때까지 Read를 해주는 함수.
err := json.Unmarshal(body, &user)
json.Unmarshal는 바이트 슬라이스나 문자열을 논리적 자료 구조로 변경하는 함수.
첫 번째 파라미터에는 JSON 데이터(body)를, 두 번째 파라미터에는 출력할 구조체(user)를 포인터로 지정합니다.
리턴 값은 에러 객체이지만, 에러가 없을 경우, 두 번째 파라미터에 원래 데이터가 저장됩니다.
defer r.Body.Close()
r.Body를 사용한 이후에는 Close를 호출하여 닫아줘야 합니다.
확장 프로그램 다운 - Postman (링크)
REST 테스트를 위한 프로그램을 설치.
이를 통해 Golang server를 테스트할 수 있습니다.



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 #4 User 정보 수정 (0) | 2021.02.01 |
| Golang+Angular+MariaDB #2 특정 User 정보 가져오기 (0) | 2021.02.01 |
| Golang+Angular+MariaDB #1 Go 기본 세팅 (0) | 2021.02.01 |