经过安装章节的操作过后,假设现在main.go文件下有如下代码
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)
}
func create(ctx iris.Context) {
var b Book
err := ctx.ReadJSON(&b)
// 接收json格式数据
if err != nil {
ctx.StopWithProblem(iris.StatusBadRequest, iris.NewProblem().
Title("Book creation failure").DetailErr(err))
return
}
println("Received Book: " + b.Title)
ctx.StatusCode(iris.StatusCreated)
}
执行上述代码后,GET请求通过访问浏览器http://localhost:8080/books即可查看我们预先存储好的内容
而POST请求这里我们使用Postman来模拟
而如果传入的不是json,错误响应如下
要求Go1.13及以上版本安装1、下载并安装Gin$ go get -u github.com/gin-gonic/gin2、将Gin引入到代码中import "github.com/gin-g...
异步和非阻塞 I/O实时 Web 功能需要每个用户的长期空闲连接。在传统的同步 Web 服务器中,这意味着为每个用户分配一个线程,这可...
与指定响应模型的方式相同,你也可以在以下任意的路径操作中使用status_code参数来声明用于响应的 HTTP 状态码:@app.get()@app....
unittest 库提供了 @skipIf 和 @skipUnless 装饰器,允许你跳过测试,如果你事先知道这些测试在某些条件下会失败。...
摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢!『 公司需要人、产品、业务和方向,方向又要人...