2016-08-31 5 views
2

Go에서 REST API를 생성하고 있으며 내 응답의 다른 리소스에 대한 URL을 작성하려고합니다.서버 스키마 포함을 포함하여 Go 작성하기 서버 구성표

http.Response을 기반으로 나는 HostURL을 얻을 수 있습니다.

그러나 서버에서 사용하는 전송 구성표를 얻으려면 어떻게해야합니까? http 또는 https?

TLSConfig *tls.Config // optional TLS config, used by ListenAndServeTLS 

을하지만이 내가 실행하지 않는 경우도 존재 밝혀 : server.TLSConfignil이며, 다음이 말했다 이후 http.Server에 대한 설명서에 http를 사용하고 그것을 가정 할 경우

나는 확인 attemped 서버 ListenAndServeTLS.


아니면 URL을 잘못 작성하는 방법입니까? 이 일을하는 다른 일반적인 방법이 있습니까?

+0

마티니 또는 revel을 위해 프레임 워크를 사용하지 않는 이유는 무엇입니까? 나는 항상 계시를 사용하고 있습니다. 그것은 oauth2와 유사한 것을 지원합니다. 나는 계시로 놀았다. revel api 및 oauth2 : https://murphy.rs/nikola/revel-oauth2-restful을 처음부터 시작한다면 repo가 ​​있습니다. 한 가지 더, 저는 항상 80 및 443 포트에서 앱을 실행하는 대신 모든 앱 앞에 nginx를 사용하고 있습니다. – pregmatch

+0

글쎄, 나는 Go를 배우려고하고 있고, 가벼운 것을 원하기 때문에 큰 틀을 사용하지 않고있다. 그래서 나는 마티니와 revel을 먼저보고 난 후,'쉬지 않고 즐거워지기 '위해 정착했다. – Joakim

답변

0

http 및 https를 실행할 때 가장 선호하는 솔루션은 모든 트래픽을 https로 리디렉션하는 :80의 간단한 수신기를 실행하는 것입니다. 그러면 실제 트래픽은 https로 가정 할 수 있습니다.

또는 req.URL.Scheme에서 요청 URL에 액세스하여 프로토콜을 볼 수 있다고 생각합니다.

전체 애플리케이션을 의미합니까? http와 https 사이를 전환하기 위해 구성을 수락하면 그걸 보면서 그들이 선택한 것을 볼 수 없습니까? 어쩌면 컨텍스트가 누락 된 것 같아요.

외부 URL을 생성하려면 앱이 플래그 또는 구성을 통해 baseURL을 사용하는 것이 일반적입니다.