Add JsonString & JsonBytes + Update benchmark links

pull/6/head
Fenny 2020-01-31 15:41:01 -05:00
parent 29091a54b4
commit ec1ba416bf
5 changed files with 52 additions and 10 deletions

View File

@ -13,7 +13,7 @@ import (
)
const (
Version = "1.2.2"
Version = "1.2.3"
// https://play.golang.org/p/r6GNeV1gbH
banner = "" +
" \x1b[1;32m _____ _ _\n" +

View File

@ -9,26 +9,26 @@
Below you can see the results of tested go frameworks responding in plaintext.
To view the list yourself, [Plaintext Go Results](https://www.techempower.com/benchmarks/#section=test&runid=8721f3a4-7b13-4703-9cd8-91b6779668c2&hw=ph&test=plaintext&l=zijocf-1r).
To see all language frameworks, [Plaintext All Results](https://www.techempower.com/benchmarks/#section=test&runid=8721f3a4-7b13-4703-9cd8-91b6779668c2&hw=ph&test=plaintext).
To view the list yourself, [Plaintext Go Results](https://www.techempower.com/benchmarks/#section=test&runid=350f0783-cc9b-4259-9831-28987799782a&hw=ph&test=plaintext&l=zijocf-1r).
To see all language frameworks, [Plaintext All Results](https://www.techempower.com/benchmarks/#section=test&runid=350f0783-cc9b-4259-9831-28987799782a&hw=ph&test=plaintext).
Plaintext
[![](static/benchmarks/techempower-plaintext.png)](https://www.techempower.com/benchmarks/#section=test&runid=8721f3a4-7b13-4703-9cd8-91b6779668c2&hw=ph&test=plaintext&l=zijocf-1r)
[![](static/benchmarks/techempower-plaintext.png)](https://www.techempower.com/benchmarks/#section=test&runid=350f0783-cc9b-4259-9831-28987799782a&hw=ph&test=plaintext&l=zijocf-1r)
Plaintext latency
[![](static/benchmarks/techempower-plaintext-latency.png)](https://www.techempower.com/benchmarks/#section=test&runid=8721f3a4-7b13-4703-9cd8-91b6779668c2&hw=ph&test=plaintext&l=zijocf-1r)
[![](static/benchmarks/techempower-plaintext-latency.png)](https://www.techempower.com/benchmarks/#section=test&runid=350f0783-cc9b-4259-9831-28987799782a&hw=ph&test=plaintext&l=zijocf-1r)
JSON serialization
[![](static/benchmarks/techempower-json.png)](https://www.techempower.com/benchmarks/#section=test&runid=8721f3a4-7b13-4703-9cd8-91b6779668c2&hw=ph&test=json&l=zijocf-1r)
[![](static/benchmarks/techempower-json.png)](https://www.techempower.com/benchmarks/#section=test&runid=350f0783-cc9b-4259-9831-28987799782a&hw=ph&test=json&l=zijocf-1r)
Single query
[![](static/benchmarks/techempower-single-query.png)](https://www.techempower.com/benchmarks/#section=test&runid=8721f3a4-7b13-4703-9cd8-91b6779668c2&hw=ph&test=db&l=zijocf-1r)
[![](static/benchmarks/techempower-single-query.png)](https://www.techempower.com/benchmarks/#section=test&runid=350f0783-cc9b-4259-9831-28987799782a&hw=ph&test=db&l=zijocf-1r)
Multiple queries
[![](static/benchmarks/techempower-multiple-queries.png)](https://www.techempower.com/benchmarks/#section=test&runid=8721f3a4-7b13-4703-9cd8-91b6779668c2&hw=ph&test=query&l=zijocf-1r)
[![](static/benchmarks/techempower-multiple-queries.png)](https://www.techempower.com/benchmarks/#section=test&runid=350f0783-cc9b-4259-9831-28987799782a&hw=ph&test=query&l=zijocf-1r)
Data updates
[![](static/benchmarks/techempower-updates.png)](https://www.techempower.com/benchmarks/#section=test&runid=8721f3a4-7b13-4703-9cd8-91b6779668c2&hw=ph&test=update&l=zijocf-1r)
[![](static/benchmarks/techempower-updates.png)](https://www.techempower.com/benchmarks/#section=test&runid=350f0783-cc9b-4259-9831-28987799782a&hw=ph&test=update&l=zijocf-1r)
#### Go-Web
[go-web-framework-benchmark](https://github.com/smallnest/go-web-framework-benchmark)

View File

@ -507,6 +507,21 @@ app.Get("/json", func(c *fiber.Ctx) {
})
```
#### JsonBytes
This function accepts raw []byte bodies and sets the content header to application/json. This function is used if you do not need type assertion.
```go
// Function signature
c.Json(json []byte)
// Example
app := fiber.New()
app.Get("/json", func(c *fiber.Ctx) {
c.JsonBytes([]byte(`"{"hello": "world"}"`))
})
app.Listen(8080)
```
#### Jsonp
Sends a JSON response with JSONP support. This method is identical to [Json()](#json), except that it opts-in to JSONP callback support.
@ -515,6 +530,7 @@ By default, the JSONP callback name is simply callback. Override this by passing
// Function signature
c.Jsonp(v interface{}) error
c.Jsonp(v interface{}, callback string) error
// Example
type JsonStruct struct {
name string
@ -536,6 +552,20 @@ app.Get("/", func(c *fiber.Ctx) {
app.Listen(8080)
```
#### JsonString
This function accepts raw string body and sets the content header to application/json. This function is used if you do not need type assertion.
```go
// Function signature
c.Json(json string)
// Example
app := fiber.New()
app.Get("/json", func(c *fiber.Ctx) {
c.JsonString(`"{"hello": "world"}"`)
})
app.Listen(8080)
```
#### Links
Joins the links followed by the propery to populate the responses Link HTTP header field.
```go

View File

@ -19,7 +19,7 @@
<script>
window.$docsify = {
name: 'Fiber v1.2.2',
name: 'Fiber v1.2.3',
repo: 'gofiber/fiber',
loadSidebar: "sidebar.md",
homepage: 'getting_started.md',

View File

@ -154,6 +154,12 @@ func (ctx *Ctx) Json(v interface{}) error {
return nil
}
// JsonBytes : https://gofiber.github.io/fiber/#/context?id=jsonbytes
func (ctx *Ctx) JsonBytes(raw []byte) {
ctx.Fasthttp.Response.Header.SetContentType(contentTypeJson)
ctx.Fasthttp.Response.SetBodyString(getString(raw))
}
// Jsonp : https://gofiber.github.io/fiber/#/context?id=jsonp
func (ctx *Ctx) Jsonp(v interface{}, cb ...string) error {
raw, err := jsoniter.Marshal(&v)
@ -172,6 +178,12 @@ func (ctx *Ctx) Jsonp(v interface{}, cb ...string) error {
return nil
}
// JsonString : https://gofiber.github.io/fiber/#/context?id=jsonstring
func (ctx *Ctx) JsonString(raw string) {
ctx.Fasthttp.Response.Header.SetContentType(contentTypeJson)
ctx.Fasthttp.Response.SetBodyString(raw)
}
// Links : https://gofiber.github.io/fiber/#/context?id=links
func (ctx *Ctx) Links(link ...string) {
h := ""