http_json_api

package module
v0.0.0-...-6ece9cf Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 4, 2015 License: Apache-2.0 Imports: 20 Imported by: 0

README

http api

Documentation

Index

Constants

View Source
const (
	HeaderForwardedPayload = "X-Forwarded-Payload"

	CtxHttpCookies = "CTX_HTTP_COOKIES"
	CtxHttpHeaders = "CTX_HTTP_HEADERS"
	CtxHttpCustom  = "CTX_HTTP_CUSTOM"
)
View Source
const (
	HttpJsonApiErrNamespace = "JSON_API"
)

Variables

View Source
var (
	DefaultTimeout time.Duration = 30 * time.Second

	DefaultApiHeader          = "X-Api"
	DefaultApiTimeoutHeader   = "X-Api-Call-Timeout"
	DefaultApiMultiCallHeader = "X-Api-Multi-Call"
)
View Source
var (
	ErrTmplVarAlreadyExist   = errors.TN(HttpJsonApiErrNamespace, 400, "template var already exist, key: {{.key}}, value: {{.value}}, original value: {{.originalValue}}")
	ErrApiAlreadyRelatedTmpl = errors.TN(HttpJsonApiErrNamespace, 401, "api already related template, api: {{.apiName}}, template: {{.tmplName}}")
	ErrTmplNotExit           = errors.TN(HttpJsonApiErrNamespace, 402, "template of {{.tmplName}} not exist")
	ErrRequestTimeout        = errors.TN(HttpJsonApiErrNamespace, 408, "request timeout")

	ErrApiGenericError            = errors.TN(HttpJsonApiErrNamespace, 500, "")
	ErrNotSupportMultiCallForward = errors.TN(HttpJsonApiErrNamespace, 501, "not support multi call forward")
	ErrRenderApiDataFailed        = errors.TN(HttpJsonApiErrNamespace, 502, "render api data failed")
)
View Source
var (
	ErrApiNameIsEmpty = errors.New("api name is empty")
)
View Source
var (
	ErrHttpResponseGenericError = errors.TN(HttpJsonApiErrNamespace, 100, "")
)

Functions

func NewJsonApiReceiver

func NewJsonApiReceiver(name string, options spirit.Map) (receiver spirit.Receiver, err error)

Types

type APIRenderData

type APIRenderData struct {
	IsMulti  bool
	Name     string
	Response APIResponse
}

type APIResponse

type APIResponse struct {
	Code           uint64      `json:"code"`
	ErrorId        string      `json:"error_id,omitempty"`
	ErrorNamespace string      `json:"error_namespace,omitempty"`
	Message        string      `json:"message"`
	Result         interface{} `json:"result"`
}

type APIResponseRenderer

type APIResponseRenderer struct {
	template.Template
	Variables map[string]interface{}
	// contains filtered or unexported fields
}

func NewAPIResponseRenderer

func NewAPIResponseRenderer() *APIResponseRenderer

func (*APIResponseRenderer) AddInternalTemplate

func (p *APIResponseRenderer) AddInternalTemplate(name, tpl string) error

func (*APIResponseRenderer) AddTemplate

func (p *APIResponseRenderer) AddTemplate(name, tpl string) (err error)

func (*APIResponseRenderer) LoadTemplates

func (p *APIResponseRenderer) LoadTemplates(paths ...string) (err error)

func (*APIResponseRenderer) LoadVariables

func (p *APIResponseRenderer) LoadVariables(paths ...string) (err error)

func (*APIResponseRenderer) Render

func (p *APIResponseRenderer) Render(isMulti bool, response map[string]APIResponse) (renderedData []byte, err error)

func (*APIResponseRenderer) ResetAPITemplate

func (p *APIResponseRenderer) ResetAPITemplate(apiName string)

func (*APIResponseRenderer) SetAPITemplate

func (p *APIResponseRenderer) SetAPITemplate(apiName, tplName string) (err error)

func (*APIResponseRenderer) SetDefaultTemplate

func (p *APIResponseRenderer) SetDefaultTemplate(name string) (err error)

type AccessControl

type AccessControl struct {
	Credentials bool     `json:"credentials"`
	Methods     []string `json:"methods"`
	Headers     []string `json:"headers"`
	Origins     []string `json:"origins"`
	// contains filtered or unexported fields
}

func (*AccessControl) ParseOrigin

func (p *AccessControl) ParseOrigin(refer string) (origin string, isAllow bool)

type HeaderDefines

type HeaderDefines struct {
	ApiHeader       string `json:"api"`
	MultiCallHeader string `json:"multi_call"`
	TimeoutHeader   string `json:"timeout"`
}

type HttpJsonApiDelivery

type HttpJsonApiDelivery struct {
	// contains filtered or unexported fields
}

func (*HttpJsonApiDelivery) DeleteMetadata

func (p *HttpJsonApiDelivery) DeleteMetadata(name string) (err error)

func (*HttpJsonApiDelivery) GetMetadata

func (p *HttpJsonApiDelivery) GetMetadata(name string) (v interface{}, exist bool)

func (*HttpJsonApiDelivery) Id

func (p *HttpJsonApiDelivery) Id() string

func (*HttpJsonApiDelivery) Labels

func (p *HttpJsonApiDelivery) Labels() spirit.Labels

func (*HttpJsonApiDelivery) Metadata

func (p *HttpJsonApiDelivery) Metadata() (metadata spirit.Map)

func (*HttpJsonApiDelivery) Payload

func (p *HttpJsonApiDelivery) Payload() spirit.Payload

func (*HttpJsonApiDelivery) SessionId

func (p *HttpJsonApiDelivery) SessionId() string

func (*HttpJsonApiDelivery) SetLabel

func (p *HttpJsonApiDelivery) SetLabel(label string, value string) (err error)

func (*HttpJsonApiDelivery) SetLabels

func (p *HttpJsonApiDelivery) SetLabels(labels spirit.Labels) (err error)

func (*HttpJsonApiDelivery) SetMetadata

func (p *HttpJsonApiDelivery) SetMetadata(name string, v interface{}) (err error)

func (*HttpJsonApiDelivery) SetURN

func (p *HttpJsonApiDelivery) SetURN(urn string) (err error)

func (*HttpJsonApiDelivery) Timestamp

func (p *HttpJsonApiDelivery) Timestamp() time.Time

func (*HttpJsonApiDelivery) URN

func (p *HttpJsonApiDelivery) URN() string

func (*HttpJsonApiDelivery) Validate

func (p *HttpJsonApiDelivery) Validate() (err error)

type HttpJsonApiPayload

type HttpJsonApiPayload struct {
	// contains filtered or unexported fields
}

func NewHttpJsonApiPayload

func NewHttpJsonApiPayload() (payload *HttpJsonApiPayload)

func (*HttpJsonApiPayload) AppendError

func (p *HttpJsonApiPayload) AppendError(err ...*spirit.Error)

func (*HttpJsonApiPayload) ClearErrors

func (p *HttpJsonApiPayload) ClearErrors()

func (*HttpJsonApiPayload) Context

func (p *HttpJsonApiPayload) Context() (context spirit.Map)

func (*HttpJsonApiPayload) DataToObject

func (p *HttpJsonApiPayload) DataToObject(v interface{}) (err error)

func (*HttpJsonApiPayload) DeleteContext

func (p *HttpJsonApiPayload) DeleteContext(name string) (err error)

func (*HttpJsonApiPayload) Errors

func (p *HttpJsonApiPayload) Errors() (err []*spirit.Error)

func (*HttpJsonApiPayload) GetContext

func (p *HttpJsonApiPayload) GetContext(name string) (v interface{}, exist bool)

func (*HttpJsonApiPayload) GetData

func (p *HttpJsonApiPayload) GetData() (data interface{}, err error)

func (*HttpJsonApiPayload) Id

func (p *HttpJsonApiPayload) Id() (id string)

func (*HttpJsonApiPayload) LastError

func (p *HttpJsonApiPayload) LastError() (err *spirit.Error)

func (*HttpJsonApiPayload) SetContext

func (p *HttpJsonApiPayload) SetContext(name string, v interface{}) (err error)

func (*HttpJsonApiPayload) SetData

func (p *HttpJsonApiPayload) SetData(data interface{}) (err error)

type JsonApiReceiver

type JsonApiReceiver struct {
	*http.HTTPReceiver
	// contains filtered or unexported fields
}

func (*JsonApiReceiver) Name

func (p *JsonApiReceiver) Name() string

func (*JsonApiReceiver) URN

func (p *JsonApiReceiver) URN() string

type JsonApiReceiverConfig

type JsonApiReceiverConfig struct {
	Http http.HTTPReceiverConfig `json:"http"`

	HeaderDefines HeaderDefines `json:"header_defines"`

	BindURN string            `json:"bind_urn"`
	ApiURN  map[string]string `json:"api_urn"`

	DefaultLabels spirit.Labels            `json:"default_labels"`
	ApiLabels     map[string]spirit.Labels `json:"api_labels"`

	DefaultMetadata map[string]interface{}            `json:"default_metadata"`
	ApiMetadata     map[string]map[string]interface{} `json:"api_metadata"`

	Renderer RendererConfig `json:"renderer"`

	AccessControl AccessControl `json:"access_control"`

	ResponseHeaders map[string]string `json:"response_headers"`

	Path    string `json:"path"`
	Timeout int    `json:"timeout"`

	ToContext ToContext `json:"to_context"`

	XDomain XDomainConfig `json:"xdomain"`
}

type JsonPayload

type JsonPayload struct {
	Id      string          `json:"id"`
	Data    interface{}     `json:"data"`
	Errors  []*spirit.Error `json:"errors"`
	Context spirit.Map      `json:"context"`
}

type RenderArray

type RenderArray struct {
	// contains filtered or unexported fields
}

func (*RenderArray) Append

func (p *RenderArray) Append(v interface{}) bool

func (RenderArray) Join

func (p RenderArray) Join(sep string) string

type RenderData

type RenderData struct {
	API  APIRenderData
	Vars map[string]interface{}
}

type RenderDict

type RenderDict map[string]interface{}

func (RenderDict) Del

func (p RenderDict) Del(key string) bool

func (RenderDict) Exist

func (p RenderDict) Exist(key string) (exist bool)

func (RenderDict) Get

func (p RenderDict) Get(key string) (val interface{})

func (RenderDict) Put

func (p RenderDict) Put(key string, val interface{}) bool

type RendererConfig

type RendererConfig struct {
	DefaultTemplate string              `json:"default_template"`
	Templates       []string            `json:"templates"`
	Variables       []string            `json:"variables"`
	Relation        map[string][]string `json:"relation"`
}

type ToContext

type ToContext struct {
	Cookies []string               `json:"cookies"`
	Headers []string               `json:"headers"`
	Customs map[string]interface{} `json:"customs"`
}

type XDomainConfig

type XDomainConfig struct {
	HtmlPath string            `json:"html_path"`
	LibPath  string            `json:"lib_path"`
	LibUrl   string            `json:"lib_url"`
	Masters  map[string]string `json:"masters"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL