cd workspace/go/src
go get -u github.com/gorilla/mux
mkdir go_server
cd go_server
go_server 폴더 위치에 main.go 파일 생성 및 실행
생성하신 프로젝트 폴더 내에서 파일 생성 후, main.go 로 지정해 주세요.
main.go 파일 생성
main.go 코딩
생성하신 main.go 파일에 코드를 입력해 주세요.
package main
import (
"encoding/json"
"log"
"net/http"
//REST API 서버를 생성하기 위한 gorilla/mux 모듈
"github.com/gorilla/mux"
)
// User 구조체 선언
type User struct {
Id int `json"id"`
Name string `json:"name"`
Email string `json:"email"`
Password string `json:"password"`
}
// user 기본 데이터 세팅
var users = []User{
User{Id: 1, Name: "David", Email: "test@gmail.com", Password: "123"},
User{Id: 2, Name: "Nata", Email: "test@email.com", Password: "qwer"},
}
func main() {
r := mux.NewRouter().StrictSlash(true)
// 핸들러 로직 작성
// 호출에 대한 GET
r.HandleFunc("/users", getUsers).Methods("GET")
// 포트를 3000으로 지정
log.Fatal(http.ListenAndServe(":3000", r))
}
// 전체 user 정보 전달
func getUsers(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(users)
}
json.NewEncoder(w).Encode(users)
json.NewEncoder에 표준 출력 http.ResponseWriter를 전달. 생성된 인코더는 앞으로 입력할 데이터를 표준 출력으로 연결하는 스트림을 갖습니다. Encode() 로 User 값을 보내면 표준 출력에는 인코딩된 JSON 문자열이 출력됩니다.