一、iris官网
iris/README_ZH.md at master · kataras/iris · GitHub
二、安装iris
三、测试框架
package main
import (
"github.com/kataras/iris/v12"
)
func main() {
app := iris.New()
booksAPI := app.Party("/books")
{
booksAPI.Use(iris.Compression)
// GET: http://localhost:8080/books
booksAPI.Get("/", list)
// POST: http://localhost:8080/books
booksAPI.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 Book
err := 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 main
import (
"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"))
}