Update readme

Update first example giving more information with the first eye-view.

also on graph's image's click now it goes to the external benchmark
suite project.
This commit is contained in:
Makis Maropoulos 2016-06-21 16:07:49 +03:00
parent f841bd4157
commit 10e8b9c964

View File

@ -20,7 +20,7 @@
the fastest web framework for Go while providing robust set of features for building modern web applications. the fastest web framework for Go while providing robust set of features for building modern web applications.
[![Benchmark Wizzard Processing Time Horizontal Graph](https://raw.githubusercontent.com/iris-contrib/website/cf71811e6acb2f9bf1e715e25660392bf090b923/assets/benchmark_horizontal_transparent.png)](#benchmarks) [![Benchmark Wizzard Processing Time Horizontal Graph](https://raw.githubusercontent.com/iris-contrib/website/cf71811e6acb2f9bf1e715e25660392bf090b923/assets/benchmark_horizontal_transparent.png)](https://github.com/smallnest/go-web-framework-benchmark)
```sh ```sh
$ cat main.go $ cat main.go
@ -28,17 +28,79 @@ $ cat main.go
```go ```go
package main package main
import "github.com/kataras/iris" import (
"github.com/kataras/iris"
"github.com/kataras/iris/middleware/logger"
)
func main() { func main() {
// render JSON
iris.Get("/hi_json", func(c *iris.Context) { iris.Get("/hi_json", func(c *iris.Context) {
c.JSON(200, iris.Map{ c.JSON(iris.StatusOK, iris.Map{
"Name": "Iris", "Name": "Iris",
"Age": 2, "Born": "13 March 2016",
"Stars": 2380,
}) })
}) })
iris.Listen(":8080")
// logger middleware
log := logger.New(iris.Logger)
// group routes by path prefix and middleware sharing
group := iris.Party("/users", log)
{
group.Get("/", func(c *iris.Context) {
// return all users or render a template
})
group.Get("/:userID", func(c *iris.Context) {
// return a user with ID `c.Param("userID")`
})
group.Delete("/:userID", func(c *iris.Context) {
//delete a user with ID `c.Param("userID")`
})
} }
// using static subdomains
subdomain := iris.Party("account.", log, myAuthMiddleware).Layout("layouts/subdomain.html")
{
subdomain.Get("/", func(c *iris.Context) {
// render a template with a context of {username: "myusername"}
c.Render("account/index.html", iris.Map{ // we can also use a struct
"username": c.Session().GetString("username"),
})
})
subdomain.Post("/edit", func(c *iris.Context) {
//...
})
}
// using dynamic subdomains
dynamicSub := iris.Party("*.")
{
// middleware on route, called before the final handler
dynamicSub.Get("/", log, func(c *iris.Context) {
c.Write("Hello from subdomain: %s", c.Subdomain())
})
}
iris.Listen("127.0.0.1:8080")
}
// using high level sessions inside a custom middleware
func myAuthMiddleware(c *iris.Context) {
s := c.Session()
if s.GetString("username") == "myusername" && s.GetString("passowrd") == "mypassword" {
c.Next()
} else {
c.EmitError(iris.StatusUnauthorized)
}
}
``` ```
> Learn about [configuration](https://kataras.gitbooks.io/iris/content/configuration.html) and [render](https://kataras.gitbooks.io/iris/content/render.html). > Learn about [configuration](https://kataras.gitbooks.io/iris/content/configuration.html) and [render](https://kataras.gitbooks.io/iris/content/render.html).