giris

package module
v0.0.0-...-5fd7d00 Latest Latest
Warning

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

Go to latest
Published: Jun 15, 2021 License: MIT Imports: 9 Imported by: 0

README

giris

Iris 框架适配 Glacier 框架

使用示例

package main

import (
	"os"

	"github.com/kataras/iris/v12"
	"github.com/kataras/iris/v12/context"
	"github.com/mylxsw/giris"
	"github.com/mylxsw/glacier/infra"
	"github.com/mylxsw/glacier/listener"
	"github.com/mylxsw/glacier/starter/application"
	"github.com/urfave/cli"
	"github.com/urfave/cli/altsrc"
)

func main() {
	app := application.Create("0.1")
	app.AddFlags(altsrc.NewStringFlag(cli.StringFlag{
		Name:   "listen",
		Usage:  "HTTP listen address",
		Value:  "127.0.0.1:19921",
	}))

	app.Singleton(func() DemoService { return DemoService{} })

	app.Provider(giris.Provider(
		listener.FlagContext("listen"),
		giris.SetDefaultRequestLogHandlerOption(),
		giris.SetRouteOption(func(resolver infra.Resolver, inject giris.Inject, irisApp *iris.Application) {
			v1 := irisApp.Party("/v1")
			{
				v1.Get("/", inject(func(ctx context.Context, srv DemoService) string {
					return srv.Hello(ctx.URLParam("name"))
				}))
				v1.Get("/{name}", inject(func(ctx context.Context, srv DemoService) string {
					return srv.Hello(ctx.Params().Get("name"))
				}))
			}
		}),
		giris.SetIrisInitOption(func(resolver infra.Resolver, irisApp *iris.Application) {
			irisApp.Logger().SetLevel("debug")
		}),
	))

	if err := app.Run(os.Args); err != nil {
		panic(err)
	}
}

type DemoService struct{}

func (srv DemoService) Hello(name string) string {
	return "hello, " + name
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Provider

func Provider(listenerBuilder infra.ListenerBuilder, options ...Option) infra.DaemonProvider

Types

type Inject

type Inject func(handler interface{}) func(ctx iris.Context)

Inject is a wrap function for iris request handler

type Option

type Option func(resolver infra.Resolver, irisApp *iris.Application)

func SetDefaultRequestLogHandlerOption

func SetDefaultRequestLogHandlerOption() Option

SetDefaultRequestLogHandlerOption set default log handler

func SetIrisInitOption

func SetIrisInitOption(fn func(resolver infra.Resolver, irisApp *iris.Application)) Option

SetIrisInitOption set iris framework init option

func SetRequestLogHandlerOption

func SetRequestLogHandlerOption(handler func(endTime time.Time, latency time.Duration, status, ip, method, path string, message interface{}, headerMessage interface{})) Option

SetRequestLogHandlerOption set a log handler option

func SetRouteOption

func SetRouteOption(fn func(resolver infra.Resolver, inject Inject, irisApp *iris.Application)) Option

SetRouteOption set route option

Jump to

Keyboard shortcuts

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