2016-08-31 10 views
2

私はGoでREST APIを作成していますが、私の回答には他のリソースへのURLを作成したいと考えています。サーバー・スキームを含むGoでのURLの構築

http.Responseに基づいて、私はHostURLを得ることができます。

ただし、サーバーで使用されるトランスポートスキームを取得するにはどうすればよいですか。 httpまたはhttps

私はserver.TLSConfignilあるかどうかを確認するためにattempedし、それがhttp.Serverのドキュメントでこれを言うので、それはhttpを使用していると仮定すると:

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

しかし、それは私が実行されていない場合でも、これが存在する判明しますサーバはListenAndServeTLSです。


また、URLを誤ったやり方で作成する方法はありますか?これを行う他の通常の方法がいくつかありますか?

+0

なぜ、これ、martiniまたはrevelのためにいくつかのフレームワークを使用しないでください。私はいつも歓喜を使用しています。 oauth2などをサポートしています。私はレベと遊んだ。 revel apiとoauth2:https://murphy.rs/nikola/revel-oauth2-restfulから始めようとしている場合、ここにレポがあります。もう一つは、私はいつも80と443ポート上でアプリを実行する代わりに、任意のアプリの前で常にnginxを使用しています。 – pregmatch

+0

私はGoを学習しようとしているので大きなフレームワークを使用していません。軽量なものを欲しがるので、マーティーニとレベルの両方を調べた後、「行き過ぎ」に落ち着きました。 – Joakim

答えて

0

httpとhttpsを実行するときの私の好みの解決策は、すべてのトラフィックをhttpsにリダイレクトする単純なリスナーを:80上で実行することです。実際のトラフィックはhttpsと仮定できます。

また、req.URL.SchemeでリクエストのURLにアクセスして、プロトコルを確認できます。

または、アプリケーション全体を意味していますか? httpとhttpsの間で切り替えるための設定を受け入れるなら、あなたはそれを見て自分が選んだものを見ることができませんか?多分私はいくつかの文脈を見逃していると思います。

また、フラグや設定でbaseURLを使って外部URLを生成するアプリもあります。

関連する問題