Golang+Angular+MariaDB #7 Handlers CORS 세팅
Development/Go+Angular+MariaDB 2021. 2. 2. 11:50 |728x90
참고영상 : Como Programar uma API REST em Golang Parte 7 - HANDLERS CORS - Iniciando um Projeto Angular # 24
더보기
Go 세팅
별도의 go 라이브러리를 추가 세팅
cd workspace/go/src
go get -u github.com/gorilla/handlers
cd go_server
main.go 수정
* CORS 추가
package main
import (
...
"github.com/gorilla/handlers" // 추가
)
type User struct { ... }
var users = []User{ ... }
type Response struct { ... }
func NewResponse(method, message string, status int) Response { ... }
func HttpInfo(r *http.Request) { ... }
func setJsonHeader(w http.ResponseWriter) { ... }
func main() {
fmt.Println("Api Connected Port 3000....")
r := mux.NewRouter().StrictSlash(true)
// 추가
headers := handlers.AllowedHeaders([]string{"X-Requested-With", "Content-Type", "Authorization"})
methods := handlers.AllowedMethods([]string{"GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS"})
origins := handlers.AllowedOrigins([]string{"*"})
r.HandleFunc("/users", getUsers).Methods("GET")
r.HandleFunc("/users/{id}", getUser).Methods("GET")
r.HandleFunc("/users", postUser).Methods("POST")
r.HandleFunc("/users/{id}", putUser).Methods(("PUT"))
r.HandleFunc("/users/{id}", deleteUser).Methods(("DELETE"))
// 수정
//log.Fatal(http.ListenAndServe(":3000", r))
log.Fatal(http.ListenAndServe(":3000", handlers.CORS(headers, methods, origins)(r)))
}
func getUsers(w http.ResponseWriter, r *http.Request) {
...
}
func getUser(w http.ResponseWriter, r *http.Request) {
...
}
func postUser(w http.ResponseWriter, r *http.Request) {
...
}
func putUser(w http.ResponseWriter, r *http.Request) {
...
}
func deleteUser(w http.ResponseWriter, r *http.Request) {
...
}
headers := handlers.AllowedHeaders([]string{"X-Request", "Content-Tyoe", "Authorization"})
methods := handlers.AllowedHeaders([]string{"GET", "POST", "PUT", "DELETE"})
origins := handlers.AllowedHeaders([]string{"*"})
CORS 핸들러를 만들 때에 Origins, Methods, Headers에 대한 옵션을 지정.
log.Fatal(http.ListenAndServe(":3000", handlers.CORS(headers, methods, origins)(r)))
위 옵션으로 http 요청에 CORS를 적용하며, 해당 핸들러를 기반으로 3000 포트 서버를 구동합니다.
728x90
'Development > Go+Angular+MariaDB' 카테고리의 다른 글
Golang+Angular+MariaDB #9 Golang 데이터 불러오기 (0) | 2021.02.02 |
---|---|
Golang+Angular+MariaDB #8 Angular 기본 세팅 (0) | 2021.02.02 |
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 |