Documentation
¶
Overview ¶
Package http defines a module for doing http operations in Starlark.
Migrated from: https://github.com/qri-io/starlib/tree/master/http
Index ¶
- Constants
- Variables
- func AsString(x starlark.Value) (string, error)
- func ConvertServerRequest(r *http.Request) *starlarkstruct.Struct
- func LoadModule() (starlark.StringDict, error)
- type ExportedServerResponse
- type Module
- type RequestGuard
- type Response
- func (r *Response) HeadersDict() *starlark.Dict
- func (r *Response) JSON(thread *starlark.Thread, _ *starlark.Builtin, args starlark.Tuple, ...) (starlark.Value, error)
- func (r *Response) Struct() *starlarkstruct.Struct
- func (r *Response) Text(thread *starlark.Thread, _ *starlark.Builtin, args starlark.Tuple, ...) (starlark.Value, error)
- type ServerResponse
Constants ¶
const ModuleName = "http"
ModuleName defines the expected name for this Module when used in starlark's load() function, eg: load('http', 'get')
Variables ¶
var ( // UserAgent is the default user agent for http requests, override with a custom value before calling LoadModule. UserAgent = "Starlet-http-client/" + itn.StarletVersion // TimeoutSecond is the default timeout in seconds for http requests, override with a custom value before calling LoadModule. TimeoutSecond = 30 // SkipInsecureVerify controls whether to skip TLS verification, override with a custom value before calling LoadModule. SkipInsecureVerify = false // DisableRedirect controls whether to follow redirects, override with a custom value before calling LoadModule. DisableRedirect = false // Client is the http client used to create the http module, override with a custom client before calling LoadModule. Client *http.Client // Guard is a global RequestGuard used in LoadModule, override with a custom implementation before calling LoadModule. Guard RequestGuard )
Functions ¶
func ConvertServerRequest ¶ added in v0.0.11
func ConvertServerRequest(r *http.Request) *starlarkstruct.Struct
ConvertServerRequest converts a http.Request to a Starlark struct for use in Starlark scripts on the server side.
Types ¶
type ExportedServerResponse ¶ added in v0.0.11
type ExportedServerResponse struct {
StatusCode int // StatusCode is the status code of the response.
Header http.Header // Header is the header of the response, a map of string to list of strings. Content-Type is set automatically.
Data []byte // Data is the data of the response, usually the body content.
}
ExportedServerResponse is a struct to export the response data to Go.
type Module ¶
type Module struct {
// contains filtered or unexported fields
}
Module joins http tools to a dataset, allowing dataset to follow along with http requests
func (*Module) StringDict ¶
func (m *Module) StringDict() starlark.StringDict
StringDict returns all module methods in a starlark.StringDict
func (*Module) Struct ¶
func (m *Module) Struct() *starlarkstruct.Struct
Struct returns this module's methods as a starlark Struct
type RequestGuard ¶
type RequestGuard interface {
Allowed(thread *starlark.Thread, req *http.Request) (*http.Request, error)
}
RequestGuard controls access to http by checking before making requests if Allowed returns an error the request will be denied
type Response ¶
Response represents an HTTP response, wrapping a go http.Response with starlark methods
func (*Response) JSON ¶
func (r *Response) JSON(thread *starlark.Thread, _ *starlark.Builtin, args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error)
JSON attempts to parse the response body as JSON
func (*Response) Struct ¶
func (r *Response) Struct() *starlarkstruct.Struct
Struct turns a response into a *starlark.Struct
type ServerResponse ¶ added in v0.0.11
type ServerResponse struct {
// contains filtered or unexported fields
}
ServerResponse is a Starlark struct to save info in Starlark scripts to modify http.ResponseWriter outside on the server side.
func NewServerResponse ¶ added in v0.0.11
func NewServerResponse() *ServerResponse
NewServerResponse creates a new ServerResponse.
func (*ServerResponse) Export ¶ added in v0.0.11
func (r *ServerResponse) Export() *ExportedServerResponse
Export dumps the response data to a struct for later use in Go.
func (*ServerResponse) Struct ¶ added in v0.0.11
func (r *ServerResponse) Struct() *starlarkstruct.Struct
Struct returns a Starlark struct for use in Starlark scripts.
func (*ServerResponse) Write ¶ added in v0.0.11
func (r *ServerResponse) Write(w http.ResponseWriter) (err error)
Write writes the response to http.ResponseWriter.