GET リクエストのクエリ パラメータ: Gorilla Mux を使用したオプションのパラメータ
Gorilla Mux では、クエリ パラメータを使用してデータをフィルタリングし、データを取得します。 HTTPリクエスト。デフォルトでは、指定されたすべてのクエリパラメータがリクエスト内に存在する必要があります。ただし、一部のパラメータをオプションにしたい場合もあります。
たとえば、GET リクエストに「username」パラメータまたは「email」パラメータのいずれかを含める必要があるが、両方を含む必要はないというシナリオを考えてみましょう。 。以前のコードは次のようになっていました。
<code class="go">r.HandleFunc("/user", userByValueHandler). Queries( "username", "{username}", "email", "{email}", ). Methods("GET")</code>
このコードでは、リクエストに「ユーザー名」と「電子メール」の両方が存在する必要があります。これらのパラメーターをオプションにするには、コードを次のように変更します。
<code class="go">r.HandleFunc("/user", UserByValueHandler).Methods("GET")</code>
これで、クエリ パラメーターの存在に関係なく、「/user」ルート ハンドラーが呼び出されます。オプションのパラメーターを取得するには、ハンドラー関数で URL.Query() メソッドを使用します。
<code class="go">func UserByValueHandler(w http.ResponseWriter, r *http.Request) { v := r.URL.Query() username := v.Get("username") email := v.Get("email") ..... }</code>
v.Get() 関数は、指定されたパラメーター名に関連付けられた値、またはパラメータが存在しない場合は空の文字列。これにより、リクエストで 1 つまたは 2 つのパラメーターが提供される両方のケースを処理できるようになります。
以上がGorilla Mux GET リクエストでクエリ パラメータをオプションにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。