1
0
mirror of https://github.com/gofiber/fiber.git synced 2025-02-25 01:44:23 +00:00
fiber/.github/README_id.md

533 lines
18 KiB
Markdown
Raw Normal View History

2020-03-05 21:19:24 +11:00
<p align="center">
2020-04-23 00:33:36 +02:00
<a href="https://gofiber.io">
2020-03-05 21:19:24 +11:00
<img alt="Fiber" height="125" src="https://github.com/gofiber/docs/blob/master/static/fiber_v2_logo.svg">
</a>
<br>
2020-03-05 23:11:24 +11:00
<a href="https://github.com/gofiber/fiber/blob/master/.github/README.md">
2020-03-07 22:19:05 +03:00
<img height="20px" src="https://github.com/gofiber/docs/blob/master/static/flags/en.svg">
2020-03-05 23:11:24 +11:00
</a>
2020-03-05 21:19:24 +11:00
<a href="https://github.com/gofiber/fiber/blob/master/.github/README_ru.md">
2020-03-07 22:19:05 +03:00
<img height="20px" src="https://github.com/gofiber/docs/blob/master/static/flags/ru.svg">
2020-03-05 21:19:24 +11:00
</a>
<a href="https://github.com/gofiber/fiber/blob/master/.github/README_es.md">
2020-03-07 22:19:05 +03:00
<img height="20px" src="https://github.com/gofiber/docs/blob/master/static/flags/es.svg">
2020-03-05 21:19:24 +11:00
</a>
<a href="https://github.com/gofiber/fiber/blob/master/.github/README_ja.md">
2020-03-07 22:19:05 +03:00
<img height="20px" src="https://github.com/gofiber/docs/blob/master/static/flags/jp.svg">
2020-03-05 21:19:24 +11:00
</a>
<a href="https://github.com/gofiber/fiber/blob/master/.github/README_pt.md">
2020-03-07 22:19:05 +03:00
<img height="20px" src="https://github.com/gofiber/docs/blob/master/static/flags/pt.svg">
2020-03-05 21:19:24 +11:00
</a>
<a href="https://github.com/gofiber/fiber/blob/master/.github/README_zh-CN.md">
2020-03-07 22:19:05 +03:00
<img height="20px" src="https://github.com/gofiber/docs/blob/master/static/flags/ch.svg">
2020-03-05 21:19:24 +11:00
</a>
<a href="https://github.com/gofiber/fiber/blob/master/.github/README_de.md">
2020-03-07 22:19:05 +03:00
<img height="20px" src="https://github.com/gofiber/docs/blob/master/static/flags/de.svg">
2020-03-05 21:19:24 +11:00
</a>
2020-04-23 22:16:42 +02:00
<a href="https://github.com/gofiber/fiber/blob/master/.github/README_nl.md">
<img height="20px" src="https://github.com/gofiber/docs/blob/master/static/flags/nl.svg">
</a>
2020-03-05 21:19:24 +11:00
<a href="https://github.com/gofiber/fiber/blob/master/.github/README_ko.md">
2020-03-07 22:19:05 +03:00
<img height="20px" src="https://github.com/gofiber/docs/blob/master/static/flags/ko.svg">
2020-03-05 21:19:24 +11:00
</a>
<a href="https://github.com/gofiber/fiber/blob/master/.github/README_fr.md">
2020-03-07 22:19:05 +03:00
<img height="20px" src="https://github.com/gofiber/docs/blob/master/static/flags/fr.svg">
2020-03-05 21:19:24 +11:00
</a>
<a href="https://github.com/gofiber/fiber/blob/master/.github/README_tr.md">
2020-03-07 22:19:05 +03:00
<img height="20px" src="https://github.com/gofiber/docs/blob/master/static/flags/tr.svg">
2020-03-05 21:19:24 +11:00
</a>
2020-03-07 22:19:05 +03:00
<!--<a href="https://github.com/gofiber/fiber/blob/master/.github/README_id.md">
<img height="20px" src="https://github.com/gofiber/docs/blob/master/static/flags/id.svg">
</a>-->
2020-03-05 21:19:24 +11:00
<br><br>
<a href="https://github.com/gofiber/fiber/releases">
<img src="https://img.shields.io/github/release/gofiber/fiber?style=flat-square">
</a>
2020-04-24 20:09:26 +02:00
<a href="https://pkg.go.dev/github.com/gofiber/fiber?tab=doc">
<img src="https://img.shields.io/badge/go.dev-007d9c?logo=go&logoColor=white&style=flat-square">
</a>
2020-04-23 00:33:36 +02:00
<a href="https://docs.gofiber.io">
2020-04-04 19:46:04 +02:00
<img src="https://img.shields.io/badge/api-docs-blue?style=flat-square">
2020-03-05 21:19:24 +11:00
</a>
2020-04-24 22:18:45 +02:00
<a href="https://goreportcard.com/report/github.com/gofiber/fiber">
<img src="https://goreportcard.com/badge/github.com/gofiber/fiber?style=flat-square">
2020-03-05 21:19:24 +11:00
</a>
<a href="https://gocover.io/github.com/gofiber/fiber">
<img src="https://img.shields.io/badge/coverage-91%25-brightgreen?style=flat-square">
</a>
2020-04-24 20:09:26 +02:00
<a href="https://github.com/gofiber/fiber/actions?query=workflow%3ATest">
<img src="https://img.shields.io/github/workflow/status/gofiber/fiber/Test?label=tests&style=flat-square">
2020-03-05 21:19:24 +11:00
</a>
2020-04-24 20:09:26 +02:00
<a href="https://github.com/gofiber/fiber/actions?query=workflow%3AGosec">
<img src="https://img.shields.io/github/workflow/status/gofiber/fiber/Gosec?label=gosec&style=flat-square">
2020-04-04 19:46:04 +02:00
</a>
2020-04-05 11:36:50 +03:00
<a href="https://t.me/gofiber">
<img src="https://img.shields.io/badge/telegram-join%20chat-0088cc?style=flat-square">
</a>
2020-03-05 21:19:24 +11:00
</p>
<p align="center">
2020-03-05 23:11:24 +11:00
<b>Fiber</b> adalah <b>web framework</b> yang terinspirasi dari <a href="https://github.com/expressjs/express">Express</a> yang berbasiskan <a href="https://github.com/valyala/fasthttp">Fasthttp</a>, HTTP engine paling <b>cepat</b> untuk <a href="https://golang.org/doc/">Go</a>. Dirancang untuk <b>mempermudah</b>, <b>mempercepat</b> pengembangan aplikasi dengan <b>alokasi memori nol-nya</b> serta <b>kinerja</b> yang selalu diperhatikan.
2020-03-05 21:19:24 +11:00
</p>
2020-03-05 23:11:24 +11:00
## ⚡️ Cara Mulai
2020-03-05 21:19:24 +11:00
```go
package main
import "github.com/gofiber/fiber"
func main() {
app := fiber.New()
app.Get("/", func(c *fiber.Ctx) {
c.Send("Hello, World!")
})
app.Listen(3000)
}
```
2020-03-05 23:11:24 +11:00
## ⚙️ Instalasi
2020-03-05 21:19:24 +11:00
2020-03-05 23:11:24 +11:00
Pertama, [unduh](https://golang.org/dl/) dan instal Go di komputer anda. Versi `1.11` atau yang lebih tinggi diperlukan.
2020-03-05 21:19:24 +11:00
2020-03-05 23:11:24 +11:00
Instalasi dilakukkan dengan perintah [`go get`](https://golang.org/cmd/go/#hdr-Add_dependencies_to_current_module_and_install_them):
2020-03-05 21:19:24 +11:00
```bash
go get -u github.com/gofiber/fiber/...
```
2020-03-05 23:11:24 +11:00
## 🤖 Pengukuran Kinerja
2020-03-05 21:19:24 +11:00
2020-04-23 00:33:36 +02:00
Pengukuran ini dilakukan oleh [TechEmpower](https://github.com/TechEmpower/FrameworkBenchmarks) dan [Go Web](https://github.com/smallnest/go-web-framework-benchmark). Apabila anda ingin melihat hasil lengkapnya, silahkan kunjungi halaman [Wiki](https://docs.gofiber.io/benchmarks) kami.
2020-03-05 21:19:24 +11:00
<p float="left" align="middle">
<img src="https://github.com/gofiber/docs/blob/master/.gitbook/assets//benchmark-pipeline.png" width="49%">
<img src="https://github.com/gofiber/docs/blob/master/.gitbook/assets//benchmark_alloc.png" width="49%">
</p>
2020-03-05 23:11:24 +11:00
## 🎯 Fitur
2020-03-05 21:19:24 +11:00
2020-04-23 00:33:36 +02:00
- Sistem [Routing](https://docs.gofiber.io/routing) yang solid
- Serve [file statis](https://docs.gofiber.io/application#static)
- [Kinerja](https://docs.gofiber.io/benchmarks) ekstrim
- [Penggunaan memori](https://docs.gofiber.io/benchmarks) yang kecil
- Cocok untuk [API](https://docs.gofiber.io/context)
- Mendukung Middleware & [Next](https://docs.gofiber.io/context#next) seperti Express
2020-03-05 23:11:24 +11:00
- Kembangkan aplikasi dengan [Cepat](https://dev.to/koddr/welcome-to-fiber-an-express-js-styled-fastest-web-framework-written-with-on-golang-497)
2020-04-23 00:33:36 +02:00
- [Template engines](https://docs.gofiber.io/middleware#template)
- [WebSocket support](https://docs.gofiber.io/middleware#websocket)
- [Rate Limiter](https://docs.gofiber.io/middleware#limiter)
- Available in [10 languages](https://docs.gofiber.io/)
- Dan masih banyak lagi, [kunjungi Fiber](https://docs.gofiber.io/)
2020-03-05 21:19:24 +11:00
2020-03-05 23:11:24 +11:00
## 💡 Filosofi
2020-03-05 21:19:24 +11:00
2020-03-05 23:41:13 +11:00
Bagi yang baru yang beralih dari [Node.js](https://nodejs.org/en/about/) ke [Go](https://golang.org/doc/) terkadang perlu waktu yang cukup lama sebelum mereka mampu membuat aplikasi web dengan Go. Fiber, sebagai **web framework** dirancang secara **minimalis** dan mengikuti filosofi dari **UNIX**, sehingga pengguna baru dengan cepat memasuki dunia Go dengan sambutan yang hangat dan dapat diandalkan.
2020-03-05 21:19:24 +11:00
2020-03-05 23:11:24 +11:00
Fiber terinspirasi dari Express, salah satu web framework paling terkenal di Internet. Kami menggabungkan **kemudahan** dari Express dan **kinerja luar biasa** dari Go. Apabila anda pernah membuat aplikasi dengan Node.js (_dengan Express atau yang lainnya_), maka banyak metode dan prinsip yang akan terasa **sangat umum** bagi anda.
2020-03-05 21:19:24 +11:00
2020-03-05 23:11:24 +11:00
Kami **mendengarkan** para pengguna di [GitHub Issues](https://github.com/gofiber/fiber/issues) (_dan berbagai platform lainnya_) untuk menciptakan web framework yang **cepat**, **fleksibel** dan **bersahabat** untuk berbagai macam keperluan, **tenggat waktu** dan **keahlian** para pengguna! Sama halnya seperti yang dilakukkan Express di dunia JavaScript.
2020-03-05 21:19:24 +11:00
2020-03-05 23:11:24 +11:00
## 👀 Contoh
2020-03-05 21:19:24 +11:00
2020-04-23 00:33:36 +02:00
Dibawah ini terdapat beberapa contoh penggunaan. Jika anda ingin contoh lainnya, silahkan kunjungi [Gudang resep](https://github.com/gofiber/recipes) atau kunjungi [Dokumentasi API](https://docs.gofiber.io) kami.
2020-03-05 21:19:24 +11:00
### Routing
2020-04-24 22:18:45 +02:00
📖 [Routing](https://docs.gofiber.io/#basic-routing)
2020-03-23 04:24:14 +01:00
2020-03-05 21:19:24 +11:00
```go
func main() {
app := fiber.New()
// GET /john
app.Get("/:name", func(c *fiber.Ctx) {
fmt.Printf("Hello %s!", c.Params("name"))
// => Hello john!
})
// GET /john
app.Get("/:name/:age?", func(c *fiber.Ctx) {
fmt.Printf("Name: %s, Age: %s", c.Params("name"), c.Params("age"))
// => Name: john, Age:
})
// GET /api/register
2020-04-12 15:35:36 +02:00
app.Get("/api/*", func(c *fiber.Ctx) {
fmt.Printf("/api/%s", c.Params("*"))
2020-03-05 21:19:24 +11:00
// => /api/register
})
app.Listen(3000)
}
```
2020-03-23 04:24:14 +01:00
### Serve static files
2020-04-24 22:18:45 +02:00
📖 [Static](https://docs.gofiber.io/application#static)
2020-03-23 04:24:14 +01:00
2020-03-05 21:19:24 +11:00
```go
func main() {
app := fiber.New()
app.Static("/", "/public")
// => http://localhost:3000/js/script.js
// => http://localhost:3000/css/style.css
app.Static("/prefix", "/public")
// => http://localhost:3000/prefix/js/script.js
// => http://localhost:3000/prefix/css/style.css
app.Static("*", "/public/index.html")
// => http://localhost:3000/any/path/shows/index/html
app.Listen(3000)
}
```
### Middleware & Next
2020-03-23 04:24:14 +01:00
2020-04-24 22:18:45 +02:00
📖 [Middleware](https://docs.gofiber.io/routing#middleware)
📖 [Next](https://docs.gofiber.io/context#next)
2020-03-23 04:24:14 +01:00
2020-03-05 21:19:24 +11:00
```go
func main() {
app := fiber.New()
// Match any route
app.Use(func(c *fiber.Ctx) {
fmt.Println("First middleware")
c.Next()
})
// Match all routes starting with /api
app.Use("/api", func(c *fiber.Ctx) {
fmt.Println("Second middleware")
c.Next()
})
2020-03-23 04:24:14 +01:00
// GET /api/register
app.Get("/api/list", func(c *fiber.Ctx) {
2020-03-05 21:19:24 +11:00
fmt.Println("Last middleware")
c.Send("Hello, World!")
})
app.Listen(3000)
}
```
<details>
2020-03-21 04:25:56 +01:00
<summary>📚 Show more code examples</summary>
2020-03-05 21:19:24 +11:00
### Template engines
2020-04-24 22:18:45 +02:00
📖 [Settings](https://docs.gofiber.io/application#settings)
📖 [Render](https://docs.gofiber.io/context#render)
📖 [Template](https://docs.gofiber.io/middleware#template)
2020-03-21 04:25:56 +01:00
2020-03-23 04:24:14 +01:00
Fiber supports the default [Go template engine](https://golang.org/pkg/html/template/)
2020-03-21 04:25:56 +01:00
2020-03-23 04:24:14 +01:00
But if you want to use another template engine like [amber](https://github.com/eknkc/amber), [handlebars](https://github.com/aymerick/raymond), [mustache](https://github.com/cbroglie/mustache) or [pug](https://github.com/Joker/jade).
2020-03-21 04:25:56 +01:00
2020-04-23 00:33:36 +02:00
You can use our [Template Middleware](https://docs.gofiber.io/middleware#template).
2020-03-21 04:25:56 +01:00
2020-03-05 21:19:24 +11:00
```go
2020-03-23 04:24:14 +01:00
package main
import (
"github.com/gofiber/fiber"
"github.com/gofiber/template"
)
2020-03-05 21:19:24 +11:00
func main() {
// You can setup template engine before initiation app:
app := fiber.New(&fiber.Settings{
2020-03-23 04:24:14 +01:00
TemplateEngine: template.Mustache(),
2020-03-05 21:19:24 +11:00
TemplateFolder: "./views",
TemplateExtension: ".tmpl",
})
// OR after initiation app at any convenient location:
2020-03-23 04:24:14 +01:00
app.Settings.TemplateEngine = template.Mustache()
2020-03-05 21:19:24 +11:00
app.Settings.TemplateFolder = "./views"
app.Settings.TemplateExtension = ".tmpl"
// And now, you can call template `./views/home.tmpl` like this:
app.Get("/", func(c *fiber.Ctx) {
c.Render("home", fiber.Map{
"title": "Homepage",
"year": 1999,
})
})
// ...
}
```
2020-03-21 04:25:56 +01:00
### Grouping routes into chains
2020-04-24 22:18:45 +02:00
📖 [Group](https://docs.gofiber.io/application#group)
2020-03-21 04:25:56 +01:00
2020-03-05 21:19:24 +11:00
```go
func main() {
app := fiber.New()
// Root API route
api := app.Group("/api", cors()) // /api
// API v1 routes
v1 := api.Group("/v1", mysql()) // /api/v1
v1.Get("/list", handler) // /api/v1/list
v1.Get("/user", handler) // /api/v1/user
// API v2 routes
v2 := api.Group("/v2", mongodb()) // /api/v2
v2.Get("/list", handler) // /api/v2/list
v2.Get("/user", handler) // /api/v2/user
// ...
}
```
### Middleware logger
2020-03-21 04:25:56 +01:00
2020-04-24 22:18:45 +02:00
📖 [Logger](https://docs.gofiber.io/middleware#logger)
2020-03-21 04:25:56 +01:00
2020-03-05 21:19:24 +11:00
```go
import (
"github.com/gofiber/fiber"
2020-03-21 04:25:56 +01:00
"github.com/gofiber/logger"
2020-03-05 21:19:24 +11:00
)
func main() {
app := fiber.New()
2020-03-21 04:25:56 +01:00
// Optional logger config
2020-03-27 22:42:30 -04:00
config := logger.Config{
2020-03-05 21:19:24 +11:00
Format: "${time} - ${method} ${path}\n",
TimeFormat: "Mon, 2 Jan 2006 15:04:05 MST",
}
2020-03-21 04:25:56 +01:00
// Logger with config
app.Use(logger.New(config))
2020-03-05 21:19:24 +11:00
2020-03-21 04:25:56 +01:00
app.Listen(3000)
2020-03-05 21:19:24 +11:00
}
```
### Cross-Origin Resource Sharing (CORS)
2020-04-24 22:18:45 +02:00
📖 [CORS](https://docs.gofiber.io/middleware#cors)
2020-03-05 21:19:24 +11:00
```go
import (
"github.com/gofiber/fiber"
2020-03-21 04:25:56 +01:00
"github.com/gofiber/cors"
2020-03-05 21:19:24 +11:00
)
func main() {
app := fiber.New()
2020-03-21 04:25:56 +01:00
// CORS with default config
app.Use(cors.New())
2020-03-05 21:19:24 +11:00
app.Listen(3000)
}
```
2020-03-21 04:25:56 +01:00
Check CORS by passing any domain in `Origin` header:
2020-03-05 21:19:24 +11:00
```bash
curl -H "Origin: http://example.com" --verbose http://localhost:3000
```
2020-03-21 04:25:56 +01:00
### Custom 404 response
2020-04-24 22:18:45 +02:00
📖 [HTTP Methods](https://docs.gofiber.io/application#http-methods)
2020-03-05 21:19:24 +11:00
```go
func main() {
app := fiber.New()
app.Static("/public")
app.Get("/demo", func(c *fiber.Ctx) {
c.Send("This is a demo!")
})
app.Post("/register", func(c *fiber.Ctx) {
c.Send("Welcome!")
})
// Last middleware to match anything
app.Use(func(c *fiber.Ctx) {
2020-03-21 04:25:56 +01:00
c.SendStatus(404)
// => 404 "Not Found"
2020-03-05 21:19:24 +11:00
})
app.Listen(3000)
}
```
2020-03-21 04:25:56 +01:00
### JSON Response
2020-04-24 22:18:45 +02:00
📖 [JSON](https://docs.gofiber.io/context#json)
2020-03-21 04:25:56 +01:00
2020-03-05 21:19:24 +11:00
```go
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
app := fiber.New()
app.Get("/user", func(c *fiber.Ctx) {
c.JSON(&User{"John", 20})
2020-03-21 04:25:56 +01:00
// => {"name":"John", "age":20}
2020-03-05 21:19:24 +11:00
})
app.Get("/json", func(c *fiber.Ctx) {
2020-03-21 04:25:56 +01:00
c.JSON(fiber.Map{
"success": true,
"message": "Hi John!",
2020-03-05 21:19:24 +11:00
})
2020-03-21 04:25:56 +01:00
// => {"success":true, "message":"Hi John!"}
2020-03-05 21:19:24 +11:00
})
app.Listen(3000)
}
```
2020-03-23 04:24:14 +01:00
### WebSocket Upgrade
2020-03-21 04:25:56 +01:00
2020-04-24 22:18:45 +02:00
📖 [Websocket](https://docs.gofiber.io/middleware#websocket)
2020-03-21 04:25:56 +01:00
2020-03-05 21:19:24 +11:00
```go
2020-03-21 04:25:56 +01:00
import (
"github.com/gofiber/fiber"
"github.com/gofiber/websocket"
)
2020-03-05 21:19:24 +11:00
func main() {
app := fiber.New()
2020-03-21 04:25:56 +01:00
app.Get("/ws", websocket.New(func(c *websocket.Conn) {
2020-03-05 21:19:24 +11:00
for {
mt, msg, err := c.ReadMessage()
if err != nil {
log.Println("read:", err)
break
}
2020-03-21 04:25:56 +01:00
log.Printf("recv: %s", msg)
2020-03-05 21:19:24 +11:00
err = c.WriteMessage(mt, msg)
if err != nil {
log.Println("write:", err)
break
}
}
2020-03-21 04:25:56 +01:00
}))
2020-03-05 21:19:24 +11:00
app.Listen(3000)
2020-03-21 04:25:56 +01:00
// ws://localhost:3000/ws
2020-03-05 21:19:24 +11:00
}
```
### Recover middleware
2020-04-24 22:18:45 +02:00
📖 [Recover](https://docs.gofiber.io/middleware#recover)
2020-03-21 04:25:56 +01:00
```go
2020-03-05 21:19:24 +11:00
import (
"github.com/gofiber/fiber"
2020-03-21 04:25:56 +01:00
"github.com/gofiber/recover"
2020-03-05 21:19:24 +11:00
)
func main() {
app := fiber.New()
2020-03-21 04:25:56 +01:00
// Optional recover config
config := recover.Config{
2020-03-21 04:25:56 +01:00
Handler: func(c *fiber.Ctx, err error) {
c.SendString(err.Error())
c.SendStatus(500)
},
}
// Logger with custom config
app.Use(recover.New(config))
2020-03-05 21:19:24 +11:00
app.Listen(3000)
}
```
</details>
2020-04-24 20:14:43 +02:00
## 🧬 Available Middlewares
For _easier_ and _more clear_ work, we've put [middleware](https://docs.gofiber.io/middleware) into separate repositories:
- [Basic Authentication](https://github.com/gofiber/basicauth)
- [Key Authentication](https://github.com/gofiber/keyauth)
- [Compression](https://github.com/gofiber/compression)
- [Request ID](https://github.com/gofiber/requestid)
- [WebSocket](https://github.com/gofiber/websocket)
- [Rewrite](https://github.com/gofiber/rewrite)
- [Recover](https://github.com/gofiber/recover)
- [Limiter](https://github.com/gofiber/limiter)
- [Session](https://github.com/gofiber/session)
- [Logger](https://github.com/gofiber/logger)
- [Helmet](https://github.com/gofiber/helmet)
- [Embed](https://github.com/gofiber/embed)
- [PPROF](https://github.com/gofiber/pprof)
- [CORS](https://github.com/gofiber/cors)
- [CSRF](https://github.com/gofiber/csrf)
- [JWT](https://github.com/gofiber/jwt)
2020-03-05 21:19:24 +11:00
## 💬 Media
2020-04-09 10:23:27 +03:00
- [Welcome to Fiber — an Express.js styled web framework written in Go with ❤️](https://dev.to/koddr/welcome-to-fiber-an-express-js-styled-fastest-web-framework-written-with-on-golang-497) — _03 Feb 2020_
- [Fiber released v1.7! 🎉 What's new and is it still fast, flexible and friendly?](https://dev.to/koddr/fiber-v2-is-out-now-what-s-new-and-is-he-still-fast-flexible-and-friendly-3ipf) — _21 Feb 2020_
- [🚀 Fiber v1.8. What's new, updated and re-thinked?](https://dev.to/koddr/fiber-v1-8-what-s-new-updated-and-re-thinked-339h) — _03 Mar 2020_
- [Is switching from Express to Fiber worth it? 🤔](https://dev.to/koddr/are-sure-what-your-lovely-web-framework-running-so-fast-2jl1) — _01 Apr 2020_
- [Creating Fast APIs In Go Using Fiber](https://dev.to/jozsefsallai/creating-fast-apis-in-go-using-fiber-59m9) — _07 Apr 2020_
2020-04-25 01:11:36 +02:00
- [Building a Basic REST API in Go using Fiber](https://tutorialedge.net/golang/basic-rest-api-go-fiber/) - _23 Apr 2020_
2020-03-05 21:19:24 +11:00
2020-03-05 23:11:24 +11:00
## 👍 Berkontribusi
2020-03-05 21:19:24 +11:00
2020-03-05 23:11:24 +11:00
Apabila anda ingin mengucapkan **terima kasih** dan/atau mendukung pengembangan `Fiber`:
2020-03-05 21:19:24 +11:00
2020-03-05 23:11:24 +11:00
1. Berikan bintang atau [GitHub Star](https://github.com/gofiber/fiber/stargazers) ke proyek ini.
2. Bagikan [di Twitter anda](https://twitter.com/intent/tweet?text=%F0%9F%9A%80%20Fiber%20%E2%80%94%20is%20an%20Express.js%20inspired%20web%20framework%20build%20on%20Fasthttp%20for%20%23Go%20https%3A%2F%2Fgithub.com%2Fgofiber%2Ffiber).
3. Buat ulasan atau tutorial di [Medium](https://medium.com/), [Dev.to](https://dev.to/) atau blog pribadi anda.
4. Bantu kami menerjemahkan `README` ini ke bahasa lainnya.
2020-04-24 19:52:24 +02:00
5. Support the project by donating a [cup of coffee](https://buymeacoff.ee/fenny).
2020-03-05 21:19:24 +11:00
2020-04-24 19:52:24 +02:00
## ☕ Supporters
2020-03-05 21:19:24 +11:00
2020-04-24 19:52:24 +02:00
Fiber is an open source project that runs on donations to pay the bills e.g. our domain name, gitbook, netlify and serverless hosting. If you want to support Fiber, you can ☕ [**buy a coffee here**](https://buymeacoff.ee/fenny)
| | User | Donation |
| :--- | :--- | :--- |
![](https://avatars.githubusercontent.com/u/59947262?s=25 ) | [@thomasvvugt](https://github.com/thomasvvugt) | ☕ x 5
![](https://avatars.githubusercontent.com/u/1094221?s=25 ) | [@ekaputra07](https://github.com/ekaputra07) | ☕ x 5
![](https://avatars.githubusercontent.com/u/635852?s=25 ) | [@bihe](https://github.com/bihe) | ☕ x 3
![](https://avatars.githubusercontent.com/u/59947262?s=25 ) | @justdave | ☕ x 3
![](https://avatars.githubusercontent.com/u/11155743?s=25 ) | [@koddr](https://github.com/koddr) | ☕ x 1
![](https://avatars.githubusercontent.com/u/5638101?s=25 ) | [@raymayemir](https://github.com/raymayemir) | ☕ x 1
![](https://avatars.githubusercontent.com/u/619996?s=25 ) | [@melkorm](https://github.com/melkorm) | ☕ x 1
![](https://avatars.githubusercontent.com/u/31022056?s=25 ) | [@marvinjwendt](https://github.com/thomasvvugt) | ☕ x 1
![](https://avatars.githubusercontent.com/u/31921460?s=25 ) | [@toishy](https://github.com/toishy) | ☕ x 1
2020-03-23 04:28:00 +01:00
2020-03-27 07:02:15 +01:00
## ‎‍💻 Code Contributors
2020-03-05 21:19:24 +11:00
2020-03-27 07:02:15 +01:00
<img src="https://opencollective.com/fiber/contributors.svg?width=890&button=false" alt="Code Contributors" style="max-width:100%;">
2020-03-05 21:19:24 +11:00
2020-03-27 07:02:15 +01:00
## ⚠️ License
2020-03-05 21:19:24 +11:00
2020-04-24 20:09:26 +02:00
Copyright (c) 2019-present [Fenny](https://github.com/fenny) and [Contributors](https://github.com/gofiber/fiber/graphs/contributors). `Fiber` is free and open-source software licensed under the [MIT License](https://github.com/gofiber/fiber/blob/master/LICENSE). Official logo was created by [Vic Shóstak](https://github.com/koddr) and distributed under [Creative Commons](https://creativecommons.org/licenses/by-sa/4.0/) license (CC BY-SA 4.0 International).
2020-04-24 20:10:54 +02:00
**Third-party library licenses**
2020-04-24 22:19:45 +02:00
- [FastHTTP](https://github.com/valyala/fasthttp/blob/master/LICENSE)
- [Schema](https://github.com/gorilla/schema/blob/master/LICENSE)