1
0
mirror of https://github.com/gofiber/fiber.git synced 2025-02-22 21:43:54 +00:00
fiber/.github/README_he.md
Fenny 8ea25a79b9
💥 v1.9.4 (#341)
* Update router.go

Co-authored-by: Fenny <fenny@protonmail.com>
2020-05-07 19:28:21 +02:00

22 KiB
Raw Blame History

Fiber


Fiber היא web framework בהשראת Express הבנויה על גבי Fasthttp, מנוע ה-HTTP המהיר ביותר עבור 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)
}

⚙️ התקנה

קודם כל, הורידו והתקינו את Go. נדרשת גרסה 1.11 ומעלה.

ההתקנה מתבצעת באמצעות הפקודה go get:

go get -u github.com/gofiber/fiber

🤖 מדדים

הבדיקות מבוצעות על ידי TechEmpower ו-Go Web. אם אתם רוצים לראות את כל התוצאות, אנא בקרו ב-Wiki שלנו.

🎯 יכולות

💡 פילוסופיה

gophers חדשים שעושים את המעבר מ-Node.js ל-Go מתמודדים עם עקומת למידה לפני שהם יכולים להתחיל לבנות את יישומי האינטרנט או המיקרו-שירותים שלהם.
Fiber כ-web framework, נוצרה עם רעיון המינימליזם ועוקבת אחרי הדרך של UNIX, כך ש-gophers חדשים יוכלו להיכנס במהירות לעולם של Go עם קבלת פנים חמה ואמינה.

Fiber נוצרה בהשראת Express, ה-web framework הפופולרית ביותר ברחבי האינטרנט. שילבנו את הקלות של Express והביצועים הגולמיים של Go. אם אי-פעם מימשתם יישום web ב-Node.js (באמצעות Express או דומיו), אז הרבה מהפונקציות והעקרונות ייראו לכם מאוד מוכרים.

אנחנו מקשיבים למשתמשים שלנו ב-issues (ובכל רחבי האינטרנט) כדי ליצור web framework מהירה, גמישה, וידידותית בשפת Go עבור כל משימה, תאריך יעד וכישורי מפתח! בדיוק כמו ש-Express מבצע בעולם של JavaScript.

👀 דוגמאות

להלן כמה מהדוגמאות הנפוצות.

אם ברצונכם לראות דוגמאות קוד נוספות, אנא בקרו במאגר המתכונים שלנו או בקרו בתיעוד ה-API שלנו.

ניתוב

📖 ניתוב

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
  app.Get("/api/*", func(c *fiber.Ctx) {
    fmt.Printf("/api/%s", c.Params("*"))
    // => /api/register
  })

  app.Listen(3000)
}

הנגשת קבצים סטטיים

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

📖 Middleware
📖 Next

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()
  })

  // GET /api/register
  app.Get("/api/list", func(c *fiber.Ctx) {
    fmt.Println("Last middleware")
    c.Send("Hello, World!")
  })

  app.Listen(3000)
}
📚 הצג דוגמאות קוד נוספות

מנועי תבניות

📖 הגדרות
📖 רנדור
📖 תבניות

Fiber תומך כברירת מחדל במנוע התבניות של Go.

אבל אם ברצונכם להשתמש במנוע תבניות אחר כמו amber, handlebars, mustache או pug.

אתם יכולים להשתמש בMiddleware של התבניות שלנו.

package main

import (
  "github.com/gofiber/fiber"
  "github.com/gofiber/template"
)

func main() {
  // You can setup template engine before initiation app:
  app := fiber.New(&fiber.Settings{
    TemplateEngine:    template.Mustache(),
    TemplateFolder:    "./views",
    TemplateExtension: ".tmpl",
  })

  // OR after initiation app at any convenient location:
  app.Settings.TemplateEngine = template.Mustache()
  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,
    })
  })

  // ...
}

קיבוץ routes ל-chains

📖 קבוצות

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

import (
    "github.com/gofiber/fiber"
    "github.com/gofiber/logger"
)

func main() {
    app := fiber.New()

    // Optional logger config
    config := logger.Config{
      Format:     "${time} - ${method} ${path}\n",
      TimeFormat: "Mon, 2 Jan 2006 15:04:05 MST",
    }

    // Logger with config
    app.Use(logger.New(config))

    app.Listen(3000)
}

שיתוף משאבים בין מקורות (CORS)

📖 CORS

import (
    "github.com/gofiber/fiber"
    "github.com/gofiber/cors"
)

func main() {
    app := fiber.New()

    // CORS with default config
    app.Use(cors.New())

    app.Listen(3000)
}

בדוק את ה-CORS על ידי העברת כל domain ב-header של Origin:

curl -H "Origin: http://example.com" --verbose http://localhost:3000

תגובת 404 מותאמת אישית

📖 שיטות HTTP

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) {
    c.SendStatus(404) 
    // => 404 "Not Found"
  })

  app.Listen(3000)
}

תגובת JSON

📖 JSON

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})
    // => {"name":"John", "age":20}
  })

  app.Get("/json", func(c *fiber.Ctx) {
    c.JSON(fiber.Map{
      "success": true,
      "message": "Hi John!",
    })
    // => {"success":true, "message":"Hi John!"}
  })

  app.Listen(3000)
}

WebSocket Upgrade

📖 Websocket

import (
    "github.com/gofiber/fiber"
    "github.com/gofiber/websocket"
)

func main() {
  app := fiber.New()

  app.Get("/ws", websocket.New(func(c *websocket.Conn) {
    for {
      mt, msg, err := c.ReadMessage()
      if err != nil {
        log.Println("read:", err)
        break
      }
      log.Printf("recv: %s", msg)
      err = c.WriteMessage(mt, msg)
      if err != nil {
        log.Println("write:", err)
        break
      }
    }
  }))

  app.Listen(3000)
  // ws://localhost:3000/ws
}

Middleware של התאוששות

📖 התאוששות

import (
    "github.com/gofiber/fiber"
    "github.com/gofiber/recover"
)

func main() {
  app := fiber.New()

  // Optional recover config
  config := recover.Config{
    Handler: func(c *fiber.Ctx, err error) {
			c.SendString(err.Error())
			c.SendStatus(500)
		},
  }

  // Logger with custom config
  app.Use(recover.New(config))

  app.Listen(3000)
}

🧬 Middlewares זמינים

למען עבודה קלה וברורה יותר, שמנו את ה-middleware תחת repositories נפרדים:

💬 מדיה

👍 לתרום

אם אתם רוצים לומר תודה או/ו לתמוך בפיתוח הפעיל של Fiber:

  1. תוסיפו GitHub Star לפרויקט.
  2. צייצו לגבי הפרויקט בטוויטר שלכם.
  3. כתבו ביקורת או מדריך ב-Medium, Dev.to או בבלוג האישי שלכם.
  4. עזרו לנו לתרגם את ה-README הזה לשפה אחרת.
  5. תמכו בפרויקט על ידי תרומת כוס קפה.

תומכים

Fiber היא פרויקט קוד פתוח שתשלום חשובונתיו מסתמך על תרומות, כגון שם ה-domain שלנו, gitbook, netlify ו-serverless hosting. אם אתם רוצים לתמוך ב-Fiber, אתם יכולים קנו קפה כאן

משתמש תרומה
@thomasvvugt x 5
@ekaputra07 x 5
@candidosales x 5
@bihe x 3
@justdave x 3
@koddr x 1
@diegowifi x 1
@ssimk0 x 1
@raymayemir x 1
@melkorm x 1
@marvinjwendt x 1
@toishy x 1

💻 תורמי קוד

Code Contributors

⚠️ רישיון

Copyright (c) 2019-present Fenny and Contributors. Fiber is free and open-source software licensed under the MIT License. Official logo was created by Vic Shóstak and distributed under Creative Commons license (CC BY-SA 4.0 International).

רישיונות של ספריות צד שלישי