mirror of https://github.com/gin-gonic/gin.git
chore: Deleted spaces (#2622)
This commit is contained in:
parent
b01605bb5b
commit
e899771392
|
@ -7,7 +7,7 @@ matrix:
|
||||||
env: GO111MODULE=on
|
env: GO111MODULE=on
|
||||||
- go: 1.13.x
|
- go: 1.13.x
|
||||||
- go: 1.13.x
|
- go: 1.13.x
|
||||||
env:
|
env:
|
||||||
- TESTTAGS=nomsgpack
|
- TESTTAGS=nomsgpack
|
||||||
- go: 1.14.x
|
- go: 1.14.x
|
||||||
- go: 1.14.x
|
- go: 1.14.x
|
||||||
|
|
|
@ -156,7 +156,7 @@ People and companies, who have contributed, in alphabetical order.
|
||||||
- Fix variadic parameter in the flexible render API
|
- Fix variadic parameter in the flexible render API
|
||||||
- Fix Corrupted plain render
|
- Fix Corrupted plain render
|
||||||
- Add Pluggable View Renderer Example
|
- Add Pluggable View Renderer Example
|
||||||
|
|
||||||
|
|
||||||
**@msemenistyi (Mykyta Semenistyi)**
|
**@msemenistyi (Mykyta Semenistyi)**
|
||||||
- update Readme.md. Add code to String method
|
- update Readme.md. Add code to String method
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
|
|
||||||
# Benchmark System
|
# Benchmark System
|
||||||
|
|
||||||
**VM HOST:** Travis
|
**VM HOST:** Travis
|
||||||
**Machine:** Ubuntu 16.04.6 LTS x64
|
**Machine:** Ubuntu 16.04.6 LTS x64
|
||||||
**Date:** May 04th, 2020
|
**Date:** May 04th, 2020
|
||||||
**Version:** Gin v1.6.3
|
**Version:** Gin v1.6.3
|
||||||
**Go Version:** 1.14.2 linux/amd64
|
**Go Version:** 1.14.2 linux/amd64
|
||||||
**Source:** [Go HTTP Router Benchmark](https://github.com/gin-gonic/go-http-routing-benchmark)
|
**Source:** [Go HTTP Router Benchmark](https://github.com/gin-gonic/go-http-routing-benchmark)
|
||||||
**Result:** [See the gist](https://gist.github.com/appleboy/b5f2ecfaf50824ae9c64dcfb9165ae5e) or [Travis result](https://travis-ci.org/github/gin-gonic/go-http-routing-benchmark/jobs/682947061)
|
**Result:** [See the gist](https://gist.github.com/appleboy/b5f2ecfaf50824ae9c64dcfb9165ae5e) or [Travis result](https://travis-ci.org/github/gin-gonic/go-http-routing-benchmark/jobs/682947061)
|
||||||
|
|
||||||
|
|
10
CHANGELOG.md
10
CHANGELOG.md
|
@ -215,12 +215,12 @@
|
||||||
|
|
||||||
## Gin 1.1
|
## Gin 1.1
|
||||||
|
|
||||||
- [NEW] Implement QueryArray and PostArray methods
|
- [NEW] Implement QueryArray and PostArray methods
|
||||||
- [NEW] Refactor GetQuery and GetPostForm
|
- [NEW] Refactor GetQuery and GetPostForm
|
||||||
- [NEW] Add contribution guide
|
- [NEW] Add contribution guide
|
||||||
- [FIX] Corrected typos in README
|
- [FIX] Corrected typos in README
|
||||||
- [FIX] Removed additional Iota
|
- [FIX] Removed additional Iota
|
||||||
- [FIX] Changed imports to gopkg instead of github in README (#733)
|
- [FIX] Changed imports to gopkg instead of github in README (#733)
|
||||||
- [FIX] Logger: skip ANSI color commands if output is not a tty
|
- [FIX] Logger: skip ANSI color commands if output is not a tty
|
||||||
|
|
||||||
## Gin 1.0rc2 (...)
|
## Gin 1.0rc2 (...)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
- With issues:
|
- With issues:
|
||||||
- Use the search tool before opening a new issue.
|
- Use the search tool before opening a new issue.
|
||||||
|
|
52
README.md
52
README.md
|
@ -103,7 +103,7 @@ import "net/http"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Quick start
|
## Quick start
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# assume the following codes in example.go file
|
# assume the following codes in example.go file
|
||||||
$ cat example.go
|
$ cat example.go
|
||||||
|
@ -588,44 +588,44 @@ func main() {
|
||||||
::1 - [Fri, 07 Dec 2018 17:04:38 JST] "GET /ping HTTP/1.1 200 122.767µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36" "
|
::1 - [Fri, 07 Dec 2018 17:04:38 JST] "GET /ping HTTP/1.1 200 122.767µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36" "
|
||||||
```
|
```
|
||||||
|
|
||||||
### Controlling Log output coloring
|
### Controlling Log output coloring
|
||||||
|
|
||||||
By default, logs output on console should be colorized depending on the detected TTY.
|
By default, logs output on console should be colorized depending on the detected TTY.
|
||||||
|
|
||||||
Never colorize logs:
|
Never colorize logs:
|
||||||
|
|
||||||
```go
|
```go
|
||||||
func main() {
|
func main() {
|
||||||
// Disable log's color
|
// Disable log's color
|
||||||
gin.DisableConsoleColor()
|
gin.DisableConsoleColor()
|
||||||
|
|
||||||
// Creates a gin router with default middleware:
|
// Creates a gin router with default middleware:
|
||||||
// logger and recovery (crash-free) middleware
|
// logger and recovery (crash-free) middleware
|
||||||
router := gin.Default()
|
router := gin.Default()
|
||||||
|
|
||||||
router.GET("/ping", func(c *gin.Context) {
|
router.GET("/ping", func(c *gin.Context) {
|
||||||
c.String(200, "pong")
|
c.String(200, "pong")
|
||||||
})
|
})
|
||||||
|
|
||||||
router.Run(":8080")
|
router.Run(":8080")
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Always colorize logs:
|
Always colorize logs:
|
||||||
|
|
||||||
```go
|
```go
|
||||||
func main() {
|
func main() {
|
||||||
// Force log's color
|
// Force log's color
|
||||||
gin.ForceConsoleColor()
|
gin.ForceConsoleColor()
|
||||||
|
|
||||||
// Creates a gin router with default middleware:
|
// Creates a gin router with default middleware:
|
||||||
// logger and recovery (crash-free) middleware
|
// logger and recovery (crash-free) middleware
|
||||||
router := gin.Default()
|
router := gin.Default()
|
||||||
|
|
||||||
router.GET("/ping", func(c *gin.Context) {
|
router.GET("/ping", func(c *gin.Context) {
|
||||||
c.String(200, "pong")
|
c.String(200, "pong")
|
||||||
})
|
})
|
||||||
|
|
||||||
router.Run(":8080")
|
router.Run(":8080")
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -667,12 +667,12 @@ func main() {
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if json.User != "manu" || json.Password != "123" {
|
if json.User != "manu" || json.Password != "123" {
|
||||||
c.JSON(http.StatusUnauthorized, gin.H{"status": "unauthorized"})
|
c.JSON(http.StatusUnauthorized, gin.H{"status": "unauthorized"})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
c.JSON(http.StatusOK, gin.H{"status": "you are logged in"})
|
c.JSON(http.StatusOK, gin.H{"status": "you are logged in"})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -688,12 +688,12 @@ func main() {
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if xml.User != "manu" || xml.Password != "123" {
|
if xml.User != "manu" || xml.Password != "123" {
|
||||||
c.JSON(http.StatusUnauthorized, gin.H{"status": "unauthorized"})
|
c.JSON(http.StatusUnauthorized, gin.H{"status": "unauthorized"})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
c.JSON(http.StatusOK, gin.H{"status": "you are logged in"})
|
c.JSON(http.StatusOK, gin.H{"status": "you are logged in"})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -705,12 +705,12 @@ func main() {
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if form.User != "manu" || form.Password != "123" {
|
if form.User != "manu" || form.Password != "123" {
|
||||||
c.JSON(http.StatusUnauthorized, gin.H{"status": "unauthorized"})
|
c.JSON(http.StatusUnauthorized, gin.H{"status": "unauthorized"})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
c.JSON(http.StatusOK, gin.H{"status": "you are logged in"})
|
c.JSON(http.StatusOK, gin.H{"status": "you are logged in"})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -807,7 +807,7 @@ $ curl "localhost:8085/bookable?check_in=2030-03-10&check_out=2030-03-09"
|
||||||
{"error":"Key: 'Booking.CheckOut' Error:Field validation for 'CheckOut' failed on the 'gtfield' tag"}
|
{"error":"Key: 'Booking.CheckOut' Error:Field validation for 'CheckOut' failed on the 'gtfield' tag"}
|
||||||
|
|
||||||
$ curl "localhost:8085/bookable?check_in=2000-03-09&check_out=2000-03-10"
|
$ curl "localhost:8085/bookable?check_in=2000-03-09&check_out=2000-03-10"
|
||||||
{"error":"Key: 'Booking.CheckIn' Error:Field validation for 'CheckIn' failed on the 'bookabledate' tag"}%
|
{"error":"Key: 'Booking.CheckIn' Error:Field validation for 'CheckIn' failed on the 'bookabledate' tag"}%
|
||||||
```
|
```
|
||||||
|
|
||||||
[Struct level validations](https://github.com/go-playground/validator/releases/tag/v8.7) can also be registered this way.
|
[Struct level validations](https://github.com/go-playground/validator/releases/tag/v8.7) can also be registered this way.
|
||||||
|
@ -1145,7 +1145,7 @@ func main() {
|
||||||
data := gin.H{
|
data := gin.H{
|
||||||
"foo": "bar",
|
"foo": "bar",
|
||||||
}
|
}
|
||||||
|
|
||||||
//callback is x
|
//callback is x
|
||||||
// Will output : x({\"foo\":\"bar\"})
|
// Will output : x({\"foo\":\"bar\"})
|
||||||
c.JSONP(http.StatusOK, data)
|
c.JSONP(http.StatusOK, data)
|
||||||
|
@ -1190,21 +1190,21 @@ This feature is unavailable in Go 1.6 and lower.
|
||||||
```go
|
```go
|
||||||
func main() {
|
func main() {
|
||||||
r := gin.Default()
|
r := gin.Default()
|
||||||
|
|
||||||
// Serves unicode entities
|
// Serves unicode entities
|
||||||
r.GET("/json", func(c *gin.Context) {
|
r.GET("/json", func(c *gin.Context) {
|
||||||
c.JSON(200, gin.H{
|
c.JSON(200, gin.H{
|
||||||
"html": "<b>Hello, world!</b>",
|
"html": "<b>Hello, world!</b>",
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
// Serves literal characters
|
// Serves literal characters
|
||||||
r.GET("/purejson", func(c *gin.Context) {
|
r.GET("/purejson", func(c *gin.Context) {
|
||||||
c.PureJSON(200, gin.H{
|
c.PureJSON(200, gin.H{
|
||||||
"html": "<b>Hello, world!</b>",
|
"html": "<b>Hello, world!</b>",
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
// listen and serve on 0.0.0.0:8080
|
// listen and serve on 0.0.0.0:8080
|
||||||
r.Run(":8080")
|
r.Run(":8080")
|
||||||
}
|
}
|
||||||
|
@ -1812,11 +1812,11 @@ func main() {
|
||||||
// the request it is currently handling
|
// the request it is currently handling
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
if err := srv.Shutdown(ctx); err != nil {
|
if err := srv.Shutdown(ctx); err != nil {
|
||||||
log.Fatal("Server forced to shutdown:", err)
|
log.Fatal("Server forced to shutdown:", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Println("Server exiting")
|
log.Println("Server exiting")
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
Loading…
Reference in New Issue