프로그래밍/Go

사내 스터디 1주차

MAKGA 2022. 2. 23. 11:40
320x100

구성원이 모두 사용해 본적 없음.

매주 과제를 정하고 다음 모임까지 완성해보는 방법으로 진행.

 

과제: Go를 사용해 Json 형식의 RestAPI 제작해보기

 

진행: 설치부터 C++과 다르다.

Go를 별도로 설치해야하고, VSCode에서 go extension를 설치해줘야 하고, 환경 변수를 잡아줘야 한다.

(GOROOT, GOPATH등. 1.7 버전 이후로는 뭐 없어졌다고 하는데 확인 필요)

 

restapi를 사용하려면 net/http 패키지를, json을 사용하려면 encoded/json 패키지를 사용해야 한다.

임의의 사용자 struct를 json으로 마샬링하기 위해선 key로 사용할 수 있는게 무조건 string이여야 한다.

uid를 정수로 했다가 이거 때문에 고생함.

 

package main

import (
	"encoding/json"
	"net/http"
)

type MyStruct struct {
	uuid string
	Name string
}

func main() {
	myStruct := MyStruct{uuid: "PROPER-UUID-STRING", Name: "Some Proper Name"}
	jsonBytes, err := json.Marshal(myStruct)
	if err != nil {
		panic(err)
	}

	http.HandleFunc("/user", func(w http.ResponseWriter, req *http.Request) {
		w.Write(jsonBytes)
	})

	http.ListenAndServe(":5000", nil)
}

 

 

 

320x100

'프로그래밍 > Go' 카테고리의 다른 글

go-sql-driver bad connection  (0) 2022.10.12
Rest api 라이브러리 찾기  (0) 2022.09.20
vscode에서 내부 패키지 관련 빨간 줄 제거하기  (0) 2022.09.15
로컬 패키지 import하기  (0) 2022.08.19