Documentation ¶
Overview ¶
Package proxy -
Package proxy - Backend 결과에 대한 Mapping, Whitelist, Blacklist 등의 처리를 수행하는 Formatter 패키지 ¶
Package proxy - Backend의 반환 결과를 Router에서 처리하기 위한 Response 객체로 변환처리하는 패키지 ¶
Package proxy - Backend의 결과들을 Merge 처리하는 Merging 패키지 ¶
Package proxy - Proxy 기능과 사용될 Middleware 인터페이스 정의와 구현체들을 제공
Index ¶
- Constants
- Variables
- func CloneMapValues(values map[string][]string) map[string][]string
- func CloneParams(params map[string]string) map[string]string
- func NewReadCloserWrapper(ctx context.Context, rc io.ReadCloser) io.Reader
- type BackendFactory
- type CallChain
- type EntityFormatter
- type Factory
- type FactoryFunc
- type HTTPResponseParser
- type HTTPResponseParserConfig
- type Metadata
- type Proxy
- type Request
- type Response
- type ResponseCombiner
Constants ¶
const (
// 미들웨어 식별 자
MWNamespace = "mw-proxy"
)
===== [ Constants and Variables ] =====
Variables ¶
var ( // ErrNoBackends - Backend 미 지정 오류 ErrNoBackends = errors.New("all endpoints must have at least one backend") // ErrTooManyBackends - 너무 많은 Backend 지정 오류 ErrTooManyBackends = errors.New("too many backends for this proxy") // ErrTooManyProxies - ProxyChain 에 너무 많은 ProxyChain 설정 오류 ErrTooManyProxies = errors.New("too many proxes for this proxy chain") // ErrNotEnoughProxies - Proxy 가 부족한 경우 오류 ErrNotEnoughProxies = errors.New("not enough proxies for this endpoint") )
Functions ¶
func CloneMapValues ¶
CloneMapValues - map[string][]string 형식의 정보를 복제
func CloneParams ¶
CloneParams - 지정한 Parameter 정보 복제
func NewReadCloserWrapper ¶
NewReadCloserWrapper - 닫기가 가능한 io.Reader 생성
Types ¶
type BackendFactory ¶
type BackendFactory func(bConf *config.BackendConfig) Proxy
BackendFactory - 지정된 BackendConfig 정보를 기반으로 수행할 Proxy를 반환하는 함수 형식
type CallChain ¶
CallChain - 설정에 따른 중첩 Proxy 연계 구조를 위한 함수 형식
func NewLoadBalancedChainWithSubscriber ¶
func NewLoadBalancedChainWithSubscriber(subscriber sd.Subscriber) CallChain
NewLoadBalancedChainWithSubscriber - 지정된 Subscriber를 활용하는 Loadbalacer Chain 구성
func NewMergeDataChain ¶
func NewMergeDataChain(eConf *config.EndpointConfig) CallChain
NewMergeDataChain - 전달된 Endpoint 설정을 기준으로 Backend 갯수에 따라서 Response를 Merging 하는 Proxy Call chain 생성
func NewRequestBuilderChain ¶
func NewRequestBuilderChain(bConf *config.BackendConfig) CallChain
NewRequestBuilderChain - Request 파라미터와 Backend Path를 설정한 Proxy 호출 체인을 생성한다.
type EntityFormatter ¶
EntityFormatter - Response를 Format 처리하는 Entity 기반 인터페이스 정의
func NewEntityFormatter ¶
func NewEntityFormatter(bConf *config.BackendConfig) EntityFormatter
NewEntityFormatter - 지정된 Backend 설정을 기준으로 Response 처리에 사용할 EntityFormatter 생성
type Factory ¶
type Factory interface {
New(eConf *config.EndpointConfig) (Proxy, error)
}
Factory - 지정된 Endpoint 기준으로 Proxy 호출을 위한 함수를 생성하는 팩토리 인터페이스
func NewDefaultFactory ¶
func NewDefaultFactory(bf BackendFactory, logger logging.Logger) Factory
NewDefaultFactory - 전달된 BackendFactory를 사용하는 기본 ProxyFactory 반환
func NewDefaultFactoryWithSubscriber ¶
func NewDefaultFactoryWithSubscriber(bf BackendFactory, logger logging.Logger, sf sd.SubscriberFactory) Factory
NewDefaultFactoryWithSubscriber - 지정된 Subscriber를 활용하는 BackendFactory를 사용하는 ProxyFactory 반환
type FactoryFunc ¶
type FactoryFunc func(*config.EndpointConfig) (Proxy, error)
FactoryFunc - 지정된 Endpoint 기준으로 Proxy 호출을 위한 함수 Adapter
func (FactoryFunc) New ¶
func (f FactoryFunc) New(eConf *config.EndpointConfig) (Proxy, error)
New - Proxy 를 생성하는 인터페이스 구현
type HTTPResponseParser ¶
HTTPResponseParser - Backend에서 반환된 http.Response를 Proxy에서 관리하는 Response 로 변환하기 위한 함수 형식
func DefaultHTTPResponseParserFactory ¶
func DefaultHTTPResponseParserFactory(conf HTTPResponseParserConfig) HTTPResponseParser
DefaultHTTPResponseParserFactory - NoOpResponseParser를 사용하지 않는 모든 경우에 사용할 ResponseParser
type HTTPResponseParserConfig ¶
type HTTPResponseParserConfig struct { Decoder encoding.Decoder EntityFormatter EntityFormatter }
HTTPResponseParserConfig - HTTPResponseParser 운영을 위한 설정 형식
type Proxy ¶
Proxy - Context 기반에서 Request를 처리하고 Response 또는 error 를 반환하는 함수 형식
func NewHTTPProxyDetailed ¶
func NewHTTPProxyDetailed(bconf *config.BackendConfig, hre client.HTTPRequestExecutor, hsh client.HTTPStatusHandler, hrp HTTPResponseParser) Proxy
NewHTTPProxyDetailed - 지정된 BackendConfig와 HTTP Reqeust Executor와 응답 처리에 사용할 StatusHandler, Response Parser를 설정한 Proxy 반환
func NewHTTPProxyWithHTTPExecutor ¶
func NewHTTPProxyWithHTTPExecutor(bconf *config.BackendConfig, hre client.HTTPRequestExecutor, dec encoding.Decoder) Proxy
NewHTTPProxyWithHTTPExecutor - 지정된 BackendConfig 와 HTTP Request Executor와 응답 처리에 사용할 Decoder를 설정한 Proxy 반환
type Request ¶
type Request struct { IsBypass bool Method string URL *url.URL Query url.Values Path string Body io.ReadCloser Params map[string]string Headers map[string][]string }
Request - Proxy 구간에서 사용할 Request 구조
func CloneRequest ¶
CloneRequest - 지정한 Request에 대한 Deep Copy를 처리
func (*Request) Clone ¶
Clone - Request 복제 (단, Thread-safe가 아니므로 Thread-safe가 필요한 경우는 "CloneRequest" 사용)
func (*Request) GeneratePath ¶
GeneratePath - Params의 정보를 이용해서 URLPattern에 존재하는 파라미터 설정을 실제 값으로 변경
type Response ¶
Response - Backend 처리를 통해 반환된 http.Response 처리를 위한 Response 구조 정의
func DummyProxy ¶
DummyProxy - 테스트나 오류 방지를 위한 Dummcy Proxy 생성
type ResponseCombiner ¶
ResponseCombiner - 여러 Response의 데이터를 Merging 처리해서 하나의 Response 데이터로 구성하는 함수 정의