This commit is contained in:
2024-04-02 14:36:18 +03:00
parent 7a865dcf1d
commit 9aa1216a15
26 changed files with 108 additions and 117 deletions
+11 -16
View File
@@ -25,7 +25,6 @@ Gin is a web framework written in [Go](https://go.dev/). It features a martini-l
- Rendering built-in - Rendering built-in
- Extendable - Extendable
## Getting started ## Getting started
### Prerequisites ### Prerequisites
@@ -37,7 +36,7 @@ Gin is a web framework written in [Go](https://go.dev/). It features a martini-l
With [Go module](https://github.com/golang/go/wiki/Modules) support, simply add the following import With [Go module](https://github.com/golang/go/wiki/Modules) support, simply add the following import
``` ```
import "github.com/gin-gonic/gin" import "git.company.lan/gopkg/gin"
``` ```
to your code, and then `go [build|run|test]` will automatically fetch the necessary dependencies. to your code, and then `go [build|run|test]` will automatically fetch the necessary dependencies.
@@ -45,7 +44,7 @@ to your code, and then `go [build|run|test]` will automatically fetch the necess
Otherwise, run the following Go command to install the `gin` package: Otherwise, run the following Go command to install the `gin` package:
```sh ```sh
$ go get -u github.com/gin-gonic/gin $ go get -u git.company.lan/gopkg/gin
``` ```
### Running Gin ### Running Gin
@@ -58,7 +57,7 @@ package main
import ( import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
) )
func main() { func main() {
@@ -89,7 +88,6 @@ Learn and practice more examples, please read the [Gin Quick Start](docs/doc.md)
A number of ready-to-run examples demonstrating various use cases of Gin on the [Gin examples](https://github.com/gin-gonic/examples) repository. A number of ready-to-run examples demonstrating various use cases of Gin on the [Gin examples](https://github.com/gin-gonic/examples) repository.
## Documentation ## Documentation
See [API documentation and descriptions](https://godoc.org/github.com/gin-gonic/gin) for package. See [API documentation and descriptions](https://godoc.org/github.com/gin-gonic/gin) for package.
@@ -116,7 +114,7 @@ A curated list of awesome Gin framework.
Gin uses a custom version of [HttpRouter](https://github.com/julienschmidt/httprouter), [see all benchmarks details](/BENCHMARKS.md). Gin uses a custom version of [HttpRouter](https://github.com/julienschmidt/httprouter), [see all benchmarks details](/BENCHMARKS.md).
| Benchmark name | (1) | (2) | (3) | (4) | | Benchmark name | (1) | (2) | (3) | (4) |
| ------------------------------ | ---------:| ---------------:| ------------:| ---------------:| | ------------------------------ | --------: | --------------: | -----------: | --------------: |
| BenchmarkGin_GithubAll | **43550** | **27364 ns/op** | **0 B/op** | **0 allocs/op** | | BenchmarkGin_GithubAll | **43550** | **27364 ns/op** | **0 B/op** | **0 allocs/op** |
| BenchmarkAce_GithubAll | 40543 | 29670 ns/op | 0 B/op | 0 allocs/op | | BenchmarkAce_GithubAll | 40543 | 29670 ns/op | 0 B/op | 0 allocs/op |
| BenchmarkAero_GithubAll | 57632 | 20648 ns/op | 0 B/op | 0 allocs/op | | BenchmarkAero_GithubAll | 57632 | 20648 ns/op | 0 B/op | 0 allocs/op |
@@ -153,23 +151,20 @@ Gin uses a custom version of [HttpRouter](https://github.com/julienschmidt/httpr
- (3): Heap Memory (B/op), lower is better - (3): Heap Memory (B/op), lower is better
- (4): Average Allocations per Repetition (allocs/op), lower is better - (4): Average Allocations per Repetition (allocs/op), lower is better
## Middlewares ## Middlewares
You can find many useful Gin middlewares at [gin-contrib](https://github.com/gin-contrib). You can find many useful Gin middlewares at [gin-contrib](https://git.company.lan/gopkg/gin-contrib).
## Users ## Users
Awesome project lists using [Gin](https://github.com/gin-gonic/gin) web framework. Awesome project lists using [Gin](https://github.com/gin-gonic/gin) web framework.
* [gorush](https://github.com/appleboy/gorush): A push notification server written in Go. - [gorush](https://github.com/appleboy/gorush): A push notification server written in Go.
* [fnproject](https://github.com/fnproject/fn): The container native, cloud agnostic serverless platform. - [fnproject](https://github.com/fnproject/fn): The container native, cloud agnostic serverless platform.
* [photoprism](https://github.com/photoprism/photoprism): Personal photo management powered by Go and Google TensorFlow. - [photoprism](https://github.com/photoprism/photoprism): Personal photo management powered by Go and Google TensorFlow.
* [lura](https://github.com/luraproject/lura): Ultra performant API Gateway with middlewares. - [lura](https://github.com/luraproject/lura): Ultra performant API Gateway with middlewares.
* [picfit](https://github.com/thoas/picfit): An image resizing server written in Go. - [picfit](https://github.com/thoas/picfit): An image resizing server written in Go.
* [dkron](https://github.com/distribworks/dkron): Distributed, fault tolerant job scheduling system. - [dkron](https://github.com/distribworks/dkron): Distributed, fault tolerant job scheduling system.
## Contributing ## Contributing
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"github.com/gin-gonic/gin/internal/bytesconv" "git.company.lan/gopkg/gin/internal/bytesconv"
) )
// AuthUserKey is the cookie name for user credential in basic auth. // AuthUserKey is the cookie name for user credential in basic auth.
+1 -1
View File
@@ -18,7 +18,7 @@ import (
"testing" "testing"
"time" "time"
"github.com/gin-gonic/gin/testdata/protoexample" "git.company.lan/gopkg/gin/testdata/protoexample"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
) )
+2 -2
View File
@@ -13,8 +13,8 @@ import (
"strings" "strings"
"time" "time"
"github.com/gin-gonic/gin/internal/bytesconv" "git.company.lan/gopkg/gin/internal/bytesconv"
"github.com/gin-gonic/gin/internal/json" "git.company.lan/gopkg/gin/internal/json"
) )
var ( var (
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"io" "io"
"net/http" "net/http"
"github.com/gin-gonic/gin/internal/json" "git.company.lan/gopkg/gin/internal/json"
) )
// EnableDecoderUseNumber is used to call the UseNumber method on the JSON // EnableDecoderUseNumber is used to call the UseNumber method on the JSON
+2 -2
View File
@@ -19,9 +19,9 @@ import (
"sync" "sync"
"time" "time"
"git.company.lan/gopkg/gin/binding"
"git.company.lan/gopkg/gin/render"
"github.com/gin-contrib/sse" "github.com/gin-contrib/sse"
"github.com/gin-gonic/gin/binding"
"github.com/gin-gonic/gin/render"
) )
// Content-Type MIME of the most common data formats. // Content-Type MIME of the most common data formats.
+3 -3
View File
@@ -23,9 +23,9 @@ import (
"testing" "testing"
"time" "time"
"git.company.lan/gopkg/gin/binding"
testdata "git.company.lan/gopkg/gin/testdata/protoexample"
"github.com/gin-contrib/sse" "github.com/gin-contrib/sse"
"github.com/gin-gonic/gin/binding"
testdata "github.com/gin-gonic/gin/testdata/protoexample"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
) )
@@ -344,7 +344,7 @@ func TestContextHandlerName(t *testing.T) {
c, _ := CreateTestContext(httptest.NewRecorder()) c, _ := CreateTestContext(httptest.NewRecorder())
c.handlers = HandlersChain{func(c *Context) {}, handlerNameTest} c.handlers = HandlersChain{func(c *Context) {}, handlerNameTest}
assert.Regexp(t, "^(.*/vendor/)?github.com/gin-gonic/gin.handlerNameTest$", c.HandlerName()) assert.Regexp(t, "^(.*/vendor/)?git.company.lan/gopkg/gin.handlerNameTest$", c.HandlerName())
} }
func TestContextHandlerNames(t *testing.T) { func TestContextHandlerNames(t *testing.T) {
+2 -2
View File
@@ -62,7 +62,7 @@ func TestDebugPrintRoutes(t *testing.T) {
debugPrintRoute("GET", "/path/to/route/:param", HandlersChain{func(c *Context) {}, handlerNameTest}) debugPrintRoute("GET", "/path/to/route/:param", HandlersChain{func(c *Context) {}, handlerNameTest})
SetMode(TestMode) SetMode(TestMode)
}) })
assert.Regexp(t, `^\[GIN-debug\] GET /path/to/route/:param --> (.*/vendor/)?github.com/gin-gonic/gin.handlerNameTest \(2 handlers\)\n$`, re) assert.Regexp(t, `^\[GIN-debug\] GET /path/to/route/:param --> (.*/vendor/)?git.company.lan/gopkg/gin.handlerNameTest \(2 handlers\)\n$`, re)
} }
func TestDebugPrintRouteFunc(t *testing.T) { func TestDebugPrintRouteFunc(t *testing.T) {
@@ -74,7 +74,7 @@ func TestDebugPrintRouteFunc(t *testing.T) {
debugPrintRoute("GET", "/path/to/route/:param1/:param2", HandlersChain{func(c *Context) {}, handlerNameTest}) debugPrintRoute("GET", "/path/to/route/:param1/:param2", HandlersChain{func(c *Context) {}, handlerNameTest})
SetMode(TestMode) SetMode(TestMode)
}) })
assert.Regexp(t, `^\[GIN-debug\] GET /path/to/route/:param1/:param2 --> (.*/vendor/)?github.com/gin-gonic/gin.handlerNameTest \(2 handlers\)\n$`, re) assert.Regexp(t, `^\[GIN-debug\] GET /path/to/route/:param1/:param2 --> (.*/vendor/)?git.company.lan/gopkg/gin.handlerNameTest \(2 handlers\)\n$`, re)
} }
func TestDebugPrintLoadTemplate(t *testing.T) { func TestDebugPrintLoadTemplate(t *testing.T) {
+1 -1
View File
@@ -7,7 +7,7 @@ package gin
import ( import (
"log" "log"
"github.com/gin-gonic/gin/binding" "git.company.lan/gopkg/gin/binding"
) )
// BindWith binds the passed struct pointer using the specified binding engine. // BindWith binds the passed struct pointer using the specified binding engine.
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"net/http/httptest" "net/http/httptest"
"testing" "testing"
"github.com/gin-gonic/gin/binding" "git.company.lan/gopkg/gin/binding"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
+1 -1
View File
@@ -3,4 +3,4 @@ Package gin implements a HTTP web framework called gin.
See https://gin-gonic.com/ for more information about gin. See https://gin-gonic.com/ for more information about gin.
*/ */
package gin // import "github.com/gin-gonic/gin" package gin // import "git.company.lan/gopkg/gin"
+30 -34
View File
@@ -714,8 +714,8 @@ import (
"net/http" "net/http"
"time" "time"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
"github.com/gin-gonic/gin/binding" "git.company.lan/gopkg/gin/binding"
"github.com/go-playground/validator/v10" "github.com/go-playground/validator/v10"
) )
@@ -782,7 +782,7 @@ import (
"log" "log"
"net/http" "net/http"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
) )
type Person struct { type Person struct {
@@ -820,7 +820,7 @@ import (
"net/http" "net/http"
"time" "time"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
) )
type Person struct { type Person struct {
@@ -870,7 +870,7 @@ package main
import ( import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
) )
type Person struct { type Person struct {
@@ -908,7 +908,7 @@ import (
"fmt" "fmt"
"net/http" "net/http"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
) )
type testHeader struct { type testHeader struct {
@@ -969,12 +969,12 @@ form.html
<form action="/" method="POST"> <form action="/" method="POST">
<p>Check some colors</p> <p>Check some colors</p>
<label for="red">Red</label> <label for="red">Red</label>
<input type="checkbox" name="colors[]" value="red" id="red"> <input type="checkbox" name="colors[]" value="red" id="red" />
<label for="green">Green</label> <label for="green">Green</label>
<input type="checkbox" name="colors[]" value="green" id="green"> <input type="checkbox" name="colors[]" value="green" id="green" />
<label for="blue">Blue</label> <label for="blue">Blue</label>
<input type="checkbox" name="colors[]" value="blue" id="blue"> <input type="checkbox" name="colors[]" value="blue" id="blue" />
<input type="submit"> <input type="submit" />
</form> </form>
``` ```
@@ -1266,9 +1266,7 @@ templates/index.tmpl
```html ```html
<html> <html>
<h1> <h1>{{ .title }}</h1>
{{ .title }}
</h1>
</html> </html>
``` ```
@@ -1296,9 +1294,8 @@ templates/posts/index.tmpl
```html ```html
{{ define "posts/index.tmpl" }} {{ define "posts/index.tmpl" }}
<html><h1> <html>
{{ .title }} <h1>{{ .title }}</h1>
</h1>
<p>Using posts/index.tmpl</p> <p>Using posts/index.tmpl</p>
</html> </html>
{{ end }} {{ end }}
@@ -1308,9 +1305,8 @@ templates/users/index.tmpl
```html ```html
{{ define "users/index.tmpl" }} {{ define "users/index.tmpl" }}
<html><h1> <html>
{{ .title }} <h1>{{ .title }}</h1>
</h1>
<p>Using users/index.tmpl</p> <p>Using users/index.tmpl</p>
</html> </html>
{{ end }} {{ end }}
@@ -1354,7 +1350,7 @@ import (
"net/http" "net/http"
"time" "time"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
) )
func formatAsDate(t time.Time) string { func formatAsDate(t time.Time) string {
@@ -1579,7 +1575,7 @@ import (
"net/http" "net/http"
"github.com/gin-gonic/autotls" "github.com/gin-gonic/autotls"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
) )
func main() { func main() {
@@ -1604,7 +1600,7 @@ import (
"net/http" "net/http"
"github.com/gin-gonic/autotls" "github.com/gin-gonic/autotls"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
"golang.org/x/crypto/acme/autocert" "golang.org/x/crypto/acme/autocert"
) )
@@ -1638,7 +1634,7 @@ import (
"net/http" "net/http"
"time" "time"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
"golang.org/x/sync/errgroup" "golang.org/x/sync/errgroup"
) )
@@ -1732,9 +1728,9 @@ endless.ListenAndServe(":4242", router)
Alternatives: Alternatives:
* [grace](https://github.com/facebookgo/grace): Graceful restart & zero downtime deploy for Go servers. - [grace](https://github.com/facebookgo/grace): Graceful restart & zero downtime deploy for Go servers.
* [graceful](https://github.com/tylerb/graceful): Graceful is a Go package enabling graceful shutdown of an http.Handler server. - [graceful](https://github.com/tylerb/graceful): Graceful is a Go package enabling graceful shutdown of an http.Handler server.
* [manners](https://github.com/braintree/manners): A polite Go HTTP server that shuts down gracefully. - [manners](https://github.com/braintree/manners): A polite Go HTTP server that shuts down gracefully.
#### Manually #### Manually
@@ -1754,7 +1750,7 @@ import (
"syscall" "syscall"
"time" "time"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
) )
func main() { func main() {
@@ -1812,7 +1808,7 @@ import (
"html/template" "html/template"
"net/http" "net/http"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
) )
//go:embed assets/* templates/* //go:embed assets/* templates/*
@@ -2057,7 +2053,7 @@ import (
"log" "log"
"net/http" "net/http"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
) )
var html = template.Must(template.New("https").Parse(` var html = template.Must(template.New("https").Parse(`
@@ -2112,7 +2108,7 @@ import (
"log" "log"
"net/http" "net/http"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
) )
func main() { func main() {
@@ -2144,7 +2140,7 @@ func main() {
import ( import (
"fmt" "fmt"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
) )
func main() { func main() {
@@ -2187,7 +2183,7 @@ unnecessary computation.
import ( import (
"fmt" "fmt"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
) )
func main() { func main() {
@@ -2213,7 +2209,7 @@ Look at the example below:
import ( import (
"fmt" "fmt"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
) )
func main() { func main() {
@@ -2249,7 +2245,7 @@ package main
import ( import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
) )
func setupRouter() *gin.Engine { func setupRouter() *gin.Engine {
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"reflect" "reflect"
"strings" "strings"
"github.com/gin-gonic/gin/internal/json" "git.company.lan/gopkg/gin/internal/json"
) )
// ErrorType is an unsigned 64-bit error code as defined in the gin spec. // ErrorType is an unsigned 64-bit error code as defined in the gin spec.
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"fmt" "fmt"
"testing" "testing"
"github.com/gin-gonic/gin/internal/json" "git.company.lan/gopkg/gin/internal/json"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
+5 -5
View File
@@ -15,8 +15,8 @@ import (
"strings" "strings"
"sync" "sync"
"github.com/gin-gonic/gin/internal/bytesconv" "git.company.lan/gopkg/gin/internal/bytesconv"
"github.com/gin-gonic/gin/render" "git.company.lan/gopkg/gin/render"
"golang.org/x/net/http2" "golang.org/x/net/http2"
"golang.org/x/net/http2/h2c" "golang.org/x/net/http2/h2c"
) )
@@ -528,7 +528,7 @@ func (engine *Engine) RunUnix(file string) (err error) {
if engine.isUnsafeTrustedProxies() { if engine.isUnsafeTrustedProxies() {
debugPrint("[WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.\n" + debugPrint("[WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.\n" +
"Please check https://github.com/gin-gonic/gin/blob/master/docs/doc.md#dont-trust-all-proxies for details.") "Please check https://git.company.lan/gopkg/gin/content/master/docs/doc.md#dont-trust-all-proxies for details.")
} }
listener, err := net.Listen("unix", file) listener, err := net.Listen("unix", file)
@@ -551,7 +551,7 @@ func (engine *Engine) RunFd(fd int) (err error) {
if engine.isUnsafeTrustedProxies() { if engine.isUnsafeTrustedProxies() {
debugPrint("[WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.\n" + debugPrint("[WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.\n" +
"Please check https://github.com/gin-gonic/gin/blob/master/docs/doc.md#dont-trust-all-proxies for details.") "Please check https://git.company.lan/gopkg/gin/content/master/docs/doc.md#dont-trust-all-proxies for details.")
} }
f := os.NewFile(uintptr(fd), fmt.Sprintf("fd@%d", fd)) f := os.NewFile(uintptr(fd), fmt.Sprintf("fd@%d", fd))
@@ -572,7 +572,7 @@ func (engine *Engine) RunListener(listener net.Listener) (err error) {
if engine.isUnsafeTrustedProxies() { if engine.isUnsafeTrustedProxies() {
debugPrint("[WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.\n" + debugPrint("[WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.\n" +
"Please check https://github.com/gin-gonic/gin/blob/master/docs/doc.md#dont-trust-all-proxies for details.") "Please check https://git.company.lan/gopkg/gin/content/master/docs/doc.md#dont-trust-all-proxies for details.")
} }
err = http.Serve(listener, engine.Handler()) err = http.Serve(listener, engine.Handler())
+2 -2
View File
@@ -6,8 +6,8 @@ This is API experiment for Gin.
package main package main
import ( import (
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
"github.com/gin-gonic/gin/ginS" "git.company.lan/gopkg/gin/ginS"
) )
func main() { func main() {
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"net/http" "net/http"
"sync" "sync"
"github.com/gin-gonic/gin" "git.company.lan/gopkg/gin"
) )
var once sync.Once var once sync.Once
+9 -9
View File
@@ -493,27 +493,27 @@ func TestListOfRoutes(t *testing.T) {
assertRoutePresent(t, list, RouteInfo{ assertRoutePresent(t, list, RouteInfo{
Method: "GET", Method: "GET",
Path: "/favicon.ico", Path: "/favicon.ico",
Handler: "^(.*/vendor/)?github.com/gin-gonic/gin.handlerTest1$", Handler: "^(.*/vendor/)?git.company.lan/gopkg/gin.handlerTest1$",
}) })
assertRoutePresent(t, list, RouteInfo{ assertRoutePresent(t, list, RouteInfo{
Method: "GET", Method: "GET",
Path: "/", Path: "/",
Handler: "^(.*/vendor/)?github.com/gin-gonic/gin.handlerTest1$", Handler: "^(.*/vendor/)?git.company.lan/gopkg/gin.handlerTest1$",
}) })
assertRoutePresent(t, list, RouteInfo{ assertRoutePresent(t, list, RouteInfo{
Method: "GET", Method: "GET",
Path: "/users/", Path: "/users/",
Handler: "^(.*/vendor/)?github.com/gin-gonic/gin.handlerTest2$", Handler: "^(.*/vendor/)?git.company.lan/gopkg/gin.handlerTest2$",
}) })
assertRoutePresent(t, list, RouteInfo{ assertRoutePresent(t, list, RouteInfo{
Method: "GET", Method: "GET",
Path: "/users/:id", Path: "/users/:id",
Handler: "^(.*/vendor/)?github.com/gin-gonic/gin.handlerTest1$", Handler: "^(.*/vendor/)?git.company.lan/gopkg/gin.handlerTest1$",
}) })
assertRoutePresent(t, list, RouteInfo{ assertRoutePresent(t, list, RouteInfo{
Method: "POST", Method: "POST",
Path: "/users/:id", Path: "/users/:id",
Handler: "^(.*/vendor/)?github.com/gin-gonic/gin.handlerTest2$", Handler: "^(.*/vendor/)?git.company.lan/gopkg/gin.handlerTest2$",
}) })
} }
@@ -710,8 +710,8 @@ func TestNewOptionFunc(t *testing.T) {
r := New(fc) r := New(fc)
routes := r.Routes() routes := r.Routes()
assertRoutePresent(t, routes, RouteInfo{Path: "/test1", Method: "GET", Handler: "github.com/gin-gonic/gin.handlerTest1"}) assertRoutePresent(t, routes, RouteInfo{Path: "/test1", Method: "GET", Handler: "git.company.lan/gopkg/gin.handlerTest1"})
assertRoutePresent(t, routes, RouteInfo{Path: "/test2", Method: "GET", Handler: "github.com/gin-gonic/gin.handlerTest2"}) assertRoutePresent(t, routes, RouteInfo{Path: "/test2", Method: "GET", Handler: "git.company.lan/gopkg/gin.handlerTest2"})
} }
func TestWithOptionFunc(t *testing.T) { func TestWithOptionFunc(t *testing.T) {
@@ -727,6 +727,6 @@ func TestWithOptionFunc(t *testing.T) {
}) })
routes := r.Routes() routes := r.Routes()
assertRoutePresent(t, routes, RouteInfo{Path: "/test1", Method: "GET", Handler: "github.com/gin-gonic/gin.handlerTest1"}) assertRoutePresent(t, routes, RouteInfo{Path: "/test1", Method: "GET", Handler: "git.company.lan/gopkg/gin.handlerTest1"})
assertRoutePresent(t, routes, RouteInfo{Path: "/test2", Method: "GET", Handler: "github.com/gin-gonic/gin.handlerTest2"}) assertRoutePresent(t, routes, RouteInfo{Path: "/test2", Method: "GET", Handler: "git.company.lan/gopkg/gin.handlerTest2"})
} }
+1 -1
View File
@@ -1,4 +1,4 @@
module github.com/gin-gonic/gin module git.company.lan/gopkg/gin
go 1.20 go 1.20
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"io" "io"
"os" "os"
"github.com/gin-gonic/gin/binding" "git.company.lan/gopkg/gin/binding"
) )
// EnvGinMode indicates environment name for gin mode. // EnvGinMode indicates environment name for gin mode.
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"os" "os"
"testing" "testing"
"github.com/gin-gonic/gin/binding" "git.company.lan/gopkg/gin/binding"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
+2 -2
View File
@@ -10,8 +10,8 @@ import (
"html/template" "html/template"
"net/http" "net/http"
"github.com/gin-gonic/gin/internal/bytesconv" "git.company.lan/gopkg/gin/internal/bytesconv"
"github.com/gin-gonic/gin/internal/json" "git.company.lan/gopkg/gin/internal/json"
) )
// JSON contains the given interface object. // JSON contains the given interface object.
+2 -2
View File
@@ -15,8 +15,8 @@ import (
"strings" "strings"
"testing" "testing"
"github.com/gin-gonic/gin/internal/json" "git.company.lan/gopkg/gin/internal/json"
testdata "github.com/gin-gonic/gin/testdata/protoexample" testdata "git.company.lan/gopkg/gin/testdata/protoexample"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
) )
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"fmt" "fmt"
"net/http" "net/http"
"github.com/gin-gonic/gin/internal/bytesconv" "git.company.lan/gopkg/gin/internal/bytesconv"
) )
// String contains the given interface object slice and its format. // String contains the given interface object slice and its format.
+1 -1
View File
@@ -11,7 +11,7 @@ import (
"unicode" "unicode"
"unicode/utf8" "unicode/utf8"
"github.com/gin-gonic/gin/internal/bytesconv" "git.company.lan/gopkg/gin/internal/bytesconv"
) )
var ( var (
+1 -1
View File
@@ -86,7 +86,7 @@ func TestFilterFlags(t *testing.T) {
} }
func TestFunctionName(t *testing.T) { func TestFunctionName(t *testing.T) {
assert.Regexp(t, `^(.*/vendor/)?github.com/gin-gonic/gin.somefunction$`, nameOfFunction(somefunction)) assert.Regexp(t, `^(.*/vendor/)?git.company.lan/gopkg/gin.somefunction$`, nameOfFunction(somefunction))
} }
func somefunction() { func somefunction() {