iris/README_ZH.md at master · kataras/iris · GitHub
二、安装iris 三、测试框架package mainimport ("github.com/kataras/iris/v12")func main() {app := iris.New()booksAPI := app.Party("/books"){booksAPI.Use(iris.Compression)// GET: http://localhost:8080/booksbooksAPI.Get("/", list)// POST: http://localhost:8080/booksbooksAPI.Post("/", create)}app.Listen(":8080")}// Book example.type Book struct {Title string `json:"title"`}func list(ctx iris.Context) {books := []Book{{"Mastering Concurrency in Go"},{"Go Design Patterns"},{"Black Hat Go"},}ctx.JSON(books)// 提示: 在服务器优先级和客户端请求中进行响应协商,// 以此来代替 ctx.JSON:// ctx.Negotiation().JSON().MsgPack().Protobuf()// ctx.Negotiate(books)}func create(ctx iris.Context) {var b Bookerr := ctx.ReadJSON(&b)// 提示: 使用 ctx.ReadBody(&b) 代替,来绑定所有类型的入参if err != nil {ctx.StopWithProblem(iris.StatusBadRequest, iris.NewProblem().Title("Book creation failure").DetailErr(err))// 提示: 如果仅有纯文本(plain text)错误响应,// 可使用 ctx.StopWithError(code, err)return}println("Received Book: " + b.Title)ctx.StatusCode(iris.StatusCreated)}
四、简化创建package mainimport ("fmt""github.com/kataras/iris/v12")func main() {app := iris.New()app.Get("/", func(context iris.Context) {fmt.Println("hello")})//访问的端口app.Run(iris.Addr(":8080"))}