本文整理汇总了Golang中github.com/go-kit/kit/transport/http.NewServer函数的典型用法代码示例。如果您正苦于以下问题:Golang NewServer函数的具体用法?Golang NewServer怎么用?Golang NewServer使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewServer函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: main
func main() {
router := mux.NewRouter()
ctx := context.Background()
svc := yell.YellingService{}
yellHandler := httptransport.NewServer(
ctx,
yell.MakeYellEndpoint(svc),
yell.DecodeYellRequest,
yell.EncodeResponse,
)
composeHandler := httptransport.NewServer(
ctx,
compose.MakeComposeEndpoint(svc),
compose.DecodeComposeRequest,
compose.EncodeResponse,
)
router.HandleFunc("/", RootHandler)
router.PathPrefix("/static/").Handler(http.StripPrefix("/static/", http.FileServer(http.Dir(*staticPath))))
http.Handle("/yell", yellHandler)
http.Handle("/compose", composeHandler)
go http.ListenAndServe(":8080", nil)
go log.Fatal(http.ListenAndServe(":8081", router))
}
开发者ID:gunjan5,项目名称:Skywalker,代码行数:27,代码来源:main.go
示例2: main
func main() {
var (
listen = flag.String("listen", ":8080", "HTTP listen address")
proxy = flag.String("proxy", "", "Optional comma-separated list of URLs to proxy uppercase requests")
)
flag.Parse()
var logger log.Logger
logger = log.NewLogfmtLogger(os.Stderr)
logger = log.NewContext(logger).With("listen", *listen).With("caller", log.DefaultCaller)
ctx := context.Background()
fieldKeys := []string{"method", "error"}
requestCount := kitprometheus.NewCounter(stdprometheus.CounterOpts{
Namespace: "my_group",
Subsystem: "string_service",
Name: "request_count",
Help: "Number of requests received.",
}, fieldKeys)
requestLatency := metrics.NewTimeHistogram(time.Microsecond, kitprometheus.NewSummary(stdprometheus.SummaryOpts{
Namespace: "my_group",
Subsystem: "string_service",
Name: "request_latency_microseconds",
Help: "Total duration of requests in microseconds.",
}, fieldKeys))
countResult := kitprometheus.NewSummary(stdprometheus.SummaryOpts{
Namespace: "my_group",
Subsystem: "string_service",
Name: "count_result",
Help: "The result of each count method.",
}, []string{})
var svc StringService
svc = stringService{}
svc = proxyingMiddleware(*proxy, ctx, logger)(svc)
svc = loggingMiddleware(logger)(svc)
svc = instrumentingMiddleware(requestCount, requestLatency, countResult)(svc)
uppercaseHandler := httptransport.NewServer(
ctx,
makeUppercaseEndpoint(svc),
decodeUppercaseRequest,
encodeResponse,
)
countHandler := httptransport.NewServer(
ctx,
makeCountEndpoint(svc),
decodeCountRequest,
encodeResponse,
)
http.Handle("/uppercase", uppercaseHandler)
http.Handle("/count", countHandler)
http.Handle("/metrics", stdprometheus.Handler())
logger.Log("msg", "HTTP", "addr", *listen)
logger.Log("err", http.ListenAndServe(*listen, nil))
}
开发者ID:cnicolov,项目名称:kit,代码行数:58,代码来源:main.go
示例3: MakeHTTPHandler
// MakeHTTPHandler mounts the endpoints into a REST-y HTTP handler.
func MakeHTTPHandler(ctx context.Context, e Endpoints, imagePath string, logger log.Logger) http.Handler {
r := mux.NewRouter().StrictSlash(false)
options := []httptransport.ServerOption{
httptransport.ServerErrorLogger(logger),
httptransport.ServerErrorEncoder(encodeError),
}
// GET /catalogue List
// GET /catalogue/size Count
// GET /catalogue/{id} Get
// GET /tags Tags
// GET /health Health Check
r.Methods("GET").Path("/catalogue").Handler(httptransport.NewServer(
ctx,
e.ListEndpoint,
decodeListRequest,
encodeListResponse,
options...,
))
r.Methods("GET").Path("/catalogue/size").Handler(httptransport.NewServer(
ctx,
e.CountEndpoint,
decodeCountRequest,
encodeResponse,
options...,
))
r.Methods("GET").Path("/catalogue/{id}").Handler(httptransport.NewServer(
ctx,
e.GetEndpoint,
decodeGetRequest,
encodeGetResponse, // special case, this one can have an error
options...,
))
r.Methods("GET").Path("/tags").Handler(httptransport.NewServer(
ctx,
e.TagsEndpoint,
decodeTagsRequest,
encodeResponse,
options...,
))
r.Methods("GET").PathPrefix("/catalogue/images/").Handler(http.StripPrefix(
"/catalogue/images/",
http.FileServer(http.Dir(imagePath)),
))
r.Methods("GET").PathPrefix("/health").Handler(httptransport.NewServer(
ctx,
e.HealthEndpoint,
decodeHealthRequest,
encodeHealthResponse,
options...,
))
r.Handle("/metrics", promhttp.Handler())
return r
}
开发者ID:xwh123807,项目名称:microapps,代码行数:56,代码来源:transport.go
示例4: main
func main() {
ctx := context.Background()
logger := log.NewLogfmtLogger(os.Stderr)
//Define metrics to be collected for this service
fieldKeys := []string{"method", "error"}
requestCount := kitprometheus.NewCounter(stdprometheus.CounterOpts{
Namespace: "my_group",
Subsystem: "string_service",
Name: "request_count",
Help: "Number of requests received.",
}, fieldKeys)
requestLatency := metrics.NewTimeHistogram(time.Microsecond, kitprometheus.NewSummary(stdprometheus.SummaryOpts{
Namespace: "my_group",
Subsystem: "string_service",
Name: "request_latency_microseconds",
Help: "Total duration of requests in Microseconds.",
}, fieldKeys))
countResult := kitprometheus.NewSummary(stdprometheus.SummaryOpts{
Namespace: "my_group",
Subsystem: "string_service",
Name: "count_result",
Help: "The result of eac count method",
}, []string{})
//Declare the string service
var svc StringService
svc = stringService{}
svc = loggingMiddleware{logger, svc}
svc = instrumentingMiddleware{requestCount, requestLatency, countResult, svc}
//Declare and define a http server that exposes the string service to clients via httptransport
uppercaseHandler := httptransport.NewServer(
ctx,
makeUppercaseEndpoint(svc),
decodeUppercaseRequest,
encodeResponse,
)
countHandler := httptransport.NewServer(
ctx,
makeCountEndpoint(svc),
decodeCountRequest,
encodeResponse,
)
//Define the content routes
http.Handle("/uppercase", uppercaseHandler)
http.Handle("/count", countHandler)
http.Handle("/metrics", stdprometheus.Handler())
logger.Log("msg", "HTTP", "addr", ":8080")
logger.Log("err", http.ListenAndServe(":8080", nil))
}
开发者ID:smgolangdev,项目名称:sm-services,代码行数:55,代码来源:main.go
示例5: main
func main() {
ctx := context.Background()
logger := log.NewLogfmtLogger(os.Stderr)
fieldKeys := []string{"method", "error"}
requestCount := kitprometheus.NewCounterFrom(stdprometheus.CounterOpts{
Namespace: "my_group",
Subsystem: "string_service",
Name: "request_count",
Help: "Number of requests received.",
}, fieldKeys)
requestLatency := kitprometheus.NewSummaryFrom(stdprometheus.SummaryOpts{
Namespace: "my_group",
Subsystem: "string_service",
Name: "request_latency_microseconds",
Help: "Total duration of requests in microseconds.",
}, fieldKeys)
countResult := kitprometheus.NewSummaryFrom(stdprometheus.SummaryOpts{
Namespace: "my_group",
Subsystem: "string_service",
Name: "count_result",
Help: "The result of each count method.",
}, []string{}) // no fields here
var svc StringService
svc = stringService{}
svc = loggingMiddleware{logger, svc}
svc = instrumentingMiddleware{requestCount, requestLatency, countResult, svc}
uppercaseHandler := httptransport.NewServer(
ctx,
makeUppercaseEndpoint(svc),
decodeUppercaseRequest,
encodeResponse,
)
countHandler := httptransport.NewServer(
ctx,
makeCountEndpoint(svc),
decodeCountRequest,
encodeResponse,
)
http.Handle("/uppercase", uppercaseHandler)
http.Handle("/count", countHandler)
http.Handle("/metrics", stdprometheus.Handler())
logger.Log("msg", "HTTP", "addr", ":8080")
logger.Log("err", http.ListenAndServe(":8080", nil))
}
开发者ID:basvanbeek,项目名称:kit,代码行数:49,代码来源:main.go
示例6: testServer
func testServer(t *testing.T) (cancel, step func(), resp <-chan *http.Response) {
var (
ctx, cancelfn = context.WithCancel(context.Background())
stepch = make(chan bool)
endpoint = func(context.Context, interface{}) (interface{}, error) { <-stepch; return struct{}{}, nil }
response = make(chan *http.Response)
handler = httptransport.NewServer(
ctx,
endpoint,
func(*http.Request) (interface{}, error) { return struct{}{}, nil },
func(http.ResponseWriter, interface{}) error { return nil },
httptransport.ServerBefore(func(ctx context.Context, r *http.Request) context.Context { return ctx }),
httptransport.ServerAfter(func(ctx context.Context, w http.ResponseWriter) { return }),
)
)
go func() {
server := httptest.NewServer(handler)
defer server.Close()
resp, err := http.Get(server.URL)
if err != nil {
t.Error(err)
return
}
response <- resp
}()
return cancelfn, func() { stepch <- true }, response
}
开发者ID:JemasKumar,项目名称:kit,代码行数:27,代码来源:server_test.go
示例7: main
func main() {
logger := log.NewLogfmtLogger(os.Stdout)
ctx := context.Background()
c := &countService{}
var svc endpoint.Endpoint
svc = makeAddEndpoint(c)
limit := ratelimit.NewBucket(2*time.Second, 1)
svc = kitratelimit.NewTokenBucketLimiter(limit)(svc)
requestCount := expvar.NewCounter("request.count")
svc = metricsMiddleware(requestCount)(svc)
svc = loggingMiddlware(logger)(svc)
addHandler := httptransport.NewServer(
ctx,
svc,
decodeAddRequest,
encodeResponse,
httptransport.ServerBefore(beforeIDExtractor, beforePATHExtractor),
)
http.Handle("/add", addHandler)
port := os.Getenv("PORT")
logger.Log("listening on", port)
if err := http.ListenAndServe(":"+port, nil); err != nil {
logger.Log("listen.error", err)
}
}
开发者ID:heroku-examples,项目名称:go-kit-ex1,代码行数:33,代码来源:main.go
示例8: main
func main() {
// setup a logger
logger = log.NewLogfmtLogger(os.Stderr)
logger = log.NewContext(logger).With("svc", "sensor").With("caller", log.DefaultCaller)
// setup rethinkdb session
session := getSession()
// build the context
ctx := context.Background()
// new service
svc := NewSensorService(session)
// wrap it in the logging middleware
svc = loggingMiddleware(logger)(svc)
// bind the service to HTTP with the context
// with it's matching encoder/decoder
recordHandler := httptransport.NewServer(
ctx,
makeRecordEndpoint(svc),
decodeRecordRequest,
encodeResponse,
)
// assign an endpoint route
http.Handle("/sensor/record", recordHandler)
// bind the listener
logger.Log("msg", "HTTP", "addr", ":5000")
logger.Log("err", http.ListenAndServe(":5000", nil))
}
开发者ID:wolfeidau,项目名称:sensord,代码行数:34,代码来源:main.go
示例9: servermain
func servermain() {
lib, nerr := glick.New(nil)
if nerr != nil {
panic(nerr)
}
if err := lib.RegAPI("api", uppercaseRequest{},
func() interface{} { return uppercaseResponse{} }, time.Second); err != nil {
panic(err)
}
if err := lib.RegPlugin("api", "lc",
func(ctx context.Context, in interface{}) (interface{}, error) {
return uppercaseResponse{
V: strings.ToLower(in.(uppercaseRequest).S),
}, nil
}, nil); err != nil {
panic(err)
}
ctx := context.Background()
svc := stringService{}
lowercaseHandler := httptransport.NewServer(
ctx,
glkit.MakeEndpoint(lib, "api", "lc"),
decodeUppercaseRequest,
encodeResponse,
)
uppercaseHandler := httptransport.NewServer(
ctx,
makeUppercaseEndpoint(svc),
decodeUppercaseRequest,
encodeResponse,
)
countHandler := httptransport.NewServer(
ctx,
makeCountEndpoint(svc),
decodeCountRequest,
encodeResponse,
)
http.Handle("/uppercase", uppercaseHandler)
http.Handle("/lowercase", lowercaseHandler)
http.Handle("/count", countHandler)
log.Fatal(http.ListenAndServe("localhost:8080", nil))
}
开发者ID:elliott5,项目名称:glick,代码行数:47,代码来源:gokit_test.go
示例10: MakeSaveAllHandler
func MakeSaveAllHandler(ctx context.Context) http.Handler {
var saveallendpoint = MakeSaveAllEndpoint()
saveallendpoint = authservice.RestrictedAccessMiddleware()(saveallendpoint)
var typedrequest = new(http_req_res.ReqSaveAll)
var saveallhandler = httptransport.NewServer(ctx, saveallendpoint, http_req_res.DecodeRequest(typedrequest), http_req_res.EncodeResponse)
handler := http_req_res.CORS.Handler(saveallhandler)
return handler
}
开发者ID:jonysugianto,项目名称:student-hostel-administration,代码行数:8,代码来源:adminservice.go
示例11: main
//Main
func main() {
ctx := context.Background()
svc := stringService{}
uppercaseHandler := httptransport.NewServer(ctx,
makeUppercaseEndpoint(svc),
decodeUppercaseRequest,
encodeResponse)
countHandler := httptransport.NewServer(
ctx, makeCountEndpoint(svc),
decodeCountRequest,
encodeResponse)
http.Handle("/uppercase", uppercaseHandler)
http.Handle("/count", countHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
开发者ID:smgolangdev,项目名称:sm-services,代码行数:19,代码来源:main-svc1.go
示例12: NewKitHandler
// NewKitHandler create new kit handler
func NewKitHandler(ctx context.Context, ep *Endpoint) *kithttp.Server {
return kithttp.NewServer(
ctx,
func(ctx context.Context, request interface{}) (interface{}, error) {
return ep.Response(request.(*Request))
},
func(r *http.Request) (request interface{}, err error) {
return service.KitJSONDecodeFunc(r, NewRequest())
},
service.KitJSONEncodeFunc,
)
}
开发者ID:ewgRa,项目名称:paymentservices,代码行数:13,代码来源:kit_handler.go
示例13: createHealthCheckRouter
func createHealthCheckRouter(logger kitlog.Logger, ctx context.Context, healthCheckEndpoint endpoint.HealthCheckServicer) *mux.Router {
router := mux.NewRouter()
router.Handle("/healthcheck",
kithttp.NewServer(
ctx,
healthCheckEndpoint.Run,
func(context.Context, *http.Request) (interface{}, error) { return struct{}{}, nil },
encodeHealthCheckHTTPResponse,
kithttp.ServerErrorLogger(logger),
)).Methods(getHTTPMethod)
return router
}
开发者ID:skidder,项目名称:streammarker-writer,代码行数:12,代码来源:http_binding.go
示例14: createApplicationRouter
func createApplicationRouter(logger kitlog.Logger, ctx context.Context, c *config.Configuration, sensorReadingsServicer endpoint.SensorReadingsServicer) *mux.Router {
router := mux.NewRouter()
router.Handle("/api/v1/sensor_readings",
kithttp.NewServer(
ctx,
endpoint.VerifyAPIKey(c.APITokens)(sensorReadingsServicer.HandleMeasurementMessage),
decodeSensorReadingsHTTPRequest,
encodeSensorReadingsHTTPResponse,
kithttp.ServerErrorEncoder(errorEncoder),
kithttp.ServerErrorLogger(logger),
)).Methods(postHTTPMethod)
return router
}
开发者ID:skidder,项目名称:streammarker-collector,代码行数:13,代码来源:http_binding.go
示例15: MakeHTTPHandler
// MakeHTTPHandler returns a handler that makes a set of endpoints available
// on predefined paths.
func MakeHTTPHandler(ctx context.Context, endpoints Endpoints, tracer stdopentracing.Tracer, logger log.Logger) http.Handler {
options := []httptransport.ServerOption{
httptransport.ServerErrorEncoder(errorEncoder),
httptransport.ServerErrorLogger(logger),
}
m := http.NewServeMux()
m.Handle("/sum", httptransport.NewServer(
ctx,
endpoints.SumEndpoint,
DecodeHTTPSumRequest,
EncodeHTTPGenericResponse,
append(options, httptransport.ServerBefore(opentracing.FromHTTPRequest(tracer, "Sum", logger)))...,
))
m.Handle("/concat", httptransport.NewServer(
ctx,
endpoints.ConcatEndpoint,
DecodeHTTPConcatRequest,
EncodeHTTPGenericResponse,
append(options, httptransport.ServerBefore(opentracing.FromHTTPRequest(tracer, "Concat", logger)))...,
))
return m
}
开发者ID:crezam,项目名称:kit,代码行数:24,代码来源:transport_http.go
示例16: Register
func Register() {
ctx := context.Background()
fieldKeys := []string{"method", "error"}
requestCount := gkprometheus.NewCounter(prometheus.CounterOpts{
Namespace: "blueplanet",
Subsystem: "bp2_service",
Name: "request_count",
Help: "Number of requests received.",
}, fieldKeys)
requestLatency := gkmetrics.NewTimeHistogram(time.Microsecond, gkprometheus.NewSummary(prometheus.SummaryOpts{
Namespace: "blueplanet",
Subsystem: "bp2_service",
Name: "request_latency_microseconds",
Help: "Total duraction of the requests in microseconds.",
}, fieldKeys))
var svc StringService
svc = stringService{}
svc = instrumentingMiddleware{requestCount, requestLatency, svc}
uppercaseHandler := gkhttptransport.NewServer(
ctx,
makeUppercaseEndpoint(svc),
decodeUppercaseRequest,
encodeResponse,
)
countHandler := gkhttptransport.NewServer(
ctx,
makeCountEndpoint(svc),
decodeCountRequest,
encodeResponse,
)
http.Handle("/string/uppercase", uppercaseHandler)
http.Handle("/string/count", countHandler)
http.Handle("/string/metrics", prometheus.Handler())
}
开发者ID:davidkbainbridge,项目名称:bp2-template,代码行数:39,代码来源:transport.go
示例17: TestServerBadEncode
func TestServerBadEncode(t *testing.T) {
handler := httptransport.NewServer(
context.Background(),
func(context.Context, interface{}) (interface{}, error) { return struct{}{}, nil },
func(*http.Request) (interface{}, error) { return struct{}{}, nil },
func(http.ResponseWriter, interface{}) error { return errors.New("dang") },
)
server := httptest.NewServer(handler)
defer server.Close()
resp, _ := http.Get(server.URL)
if want, have := http.StatusInternalServerError, resp.StatusCode; want != have {
t.Errorf("want %d, have %d", want, have)
}
}
开发者ID:JemasKumar,项目名称:kit,代码行数:14,代码来源:server_test.go
示例18: Handler
// Handler returns go-kit http transport server
// of the given definition
func (s Service) Handler() http.Handler {
ep := s.Middlewares.Chain()(s.Endpoint)
options := append([]httptransport.ServerOption{
httptransport.ServerBefore(s.Before...),
httptransport.ServerAfter(s.After...),
httptransport.ServerErrorEncoder(s.ErrorEncoder),
}, s.Options...)
return httptransport.NewServer(
s.Context,
ep,
s.DecodeFunc,
s.EncodeFunc,
options...)
}
开发者ID:gourd,项目名称:kit,代码行数:16,代码来源:service.go
示例19: main
func main() {
ctx := context.Background()
as := ageService{}
ageHandler := httptransport.NewServer(
ctx,
makeCalculateAgeEndpoint(as),
decodeAgeRequest,
encodeResponse,
)
http.Handle("/age", ageHandler)
log.Fatal(http.ListenAndServe(":8001", nil))
}
开发者ID:gowroc,项目名称:meetups,代码行数:14,代码来源:main.go
示例20: main
func main() {
ctx := context.Background()
svc := simpleStringManipulatingMicroservice{}
uppercaseHandler := httptransport.NewServer(
ctx,
makeUppercaseEndpoint(svc),
decodeUppercaseRequest,
encodeResponse,
)
http.Handle("/uppercase", uppercaseHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
开发者ID:russmiles,项目名称:golangsandbox,代码行数:15,代码来源:simplemicroservice.go
注:本文中的github.com/go-kit/kit/transport/http.NewServer函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论