Gi-Log

[#3] golang api 개발을 위한 기초 예제 본문

Golang 게시판 제작

[#3] golang api 개발을 위한 기초 예제

돌잔 2022. 3. 12. 01:52

api는 당연히 http를 바탕으로 개발이 되어야 한다. 따라서 golang에서 http 관련 다양한 프레임워크 중 gorilla/mux라는 것을 이용할 것이다.

 

간단하게 터미널에서 go get -u github.com/gorilla/mux를 입력하면 pkg 디렉토리 내의 mod 디렉토리 내에 github.com/gorilla/mux@{버전정보} 가 생성된 것을 확인할 수 있다.

(사실 어느 위치에서 저 명령어를 입력하는지는 그렇게 중요하지는 않은 것 같은데, 본인은 src/go-board에서 저 명령어를 입력하였다.)

 

package main

import (
	"encoding/json"
	"github.com/gorilla/mux"
	"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
	json.NewEncoder(w).Encode("hello")
}

func main() {
	router := mux.NewRouter()
	router.HandleFunc("/", handler)
	http.ListenAndServe(":8080", router)
}

그리고 위와 같은 간단한 코드를 작성한다. 123.123.123.123:8080으로 접속하면 hello를 응답 받을 수 있는 단순한 코드이다.

(GoLand-ssh를 이용하여 개발을 진행할 때, gorilla/mux를 인식하지 못한다고 빨간색으로 표시가 되기도 하는데, 실제로 실행을 하면 문제 없이 잘 진행된다. IDE 상의 오류로 생각된다.)

 

코드를 실행하고 123.123.123.123:8080으로 접속해보면(web 브라우저를 이용하거나 postman을 이용) 

 

상기의 화면을 확인할 수 있다. 123.123.123.123은 지난 포스트에서 이야기한 것처럼 하나의 예시이고, 혹시 본 포스트를 따라하려는 분들은 자기 자신의 api 서버 공인 ip를 활용해야 합니다.

Comments