Documentation ¶
Overview ¶
Copyright 2016 The GoStor Authors All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Package httputils contains a bunch of HTTP utility code, some generic
Index ¶
- Constants
- func BoolValue(r *http.Request, k string) bool
- func BoolValueOrDefault(r *http.Request, k string, d bool) bool
- func CheckForJSON(r *http.Request) error
- func CloseStreams(streams ...interface{})
- func HijackConnection(w http.ResponseWriter) (io.ReadCloser, io.Writer, error)
- func Int64ValueOrDefault(r *http.Request, field string, def int64) (int64, error)
- func Int64ValueOrZero(r *http.Request, k string) int64
- func MatchesContentType(contentType, expectedType string) bool
- func ParseForm(r *http.Request) error
- func ParseMultipartForm(r *http.Request) error
- func VersionFromContext(ctx context.Context) string
- func WriteError(w http.ResponseWriter, err error)
- func WriteJSON(w http.ResponseWriter, code int, v interface{}) error
- type APIFunc
- type ArchiveOptions
Constants ¶
const APIVersionKey = "api-version"
APIVersionKey is the client's requested API version.
Variables ¶
This section is empty.
Functions ¶
func BoolValueOrDefault ¶
BoolValueOrDefault returns the default bool passed if the query param is missing, otherwise it's just a proxy to boolValue above
func CheckForJSON ¶
CheckForJSON makes sure that the request's Content-Type is application/json.
func CloseStreams ¶
func CloseStreams(streams ...interface{})
CloseStreams ensures that a list for http streams are properly closed.
func HijackConnection ¶
func HijackConnection(w http.ResponseWriter) (io.ReadCloser, io.Writer, error)
HijackConnection interrupts the http response writer to get the underlying connection and operate with it.
func Int64ValueOrDefault ¶
Int64ValueOrDefault parses a form value into an int64 type. If there is an error, returns the error. If there is no value returns the default value.
func Int64ValueOrZero ¶
Int64ValueOrZero parses a form value into an int64 type. It returns 0 if the parsing fails.
func MatchesContentType ¶
MatchesContentType validates the content type against the expected one
func ParseForm ¶
ParseForm ensures the request form is parsed even with invalid content types. If we don't do this, POST method without Content-type (even with empty body) will fail.
func ParseMultipartForm ¶
ParseMultipartForm ensure the request form is parsed, even with invalid content types.
func VersionFromContext ¶
VersionFromContext returns an API version from the context using APIVersionKey. It panics if the context value does not have version.Version type.
func WriteError ¶
func WriteError(w http.ResponseWriter, err error)
WriteError decodes a specific docker error and sends it in the response.
Types ¶
type APIFunc ¶
type APIFunc func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error
APIFunc is an adapter to allow the use of ordinary functions as Docker API endpoints. Any function that has the appropriate signature can be register as a API endpoint (e.g. getVersion).
type ArchiveOptions ¶
ArchiveOptions stores archive information for different operations.
func ArchiveFormValues ¶
ArchiveFormValues parses form values and turns them into ArchiveOptions. It fails if the archive name and path are not in the request.