github.com/gofiber/fiber/v2@v2.47.0/.github/README_az.md (about) 1 <p align="center"> 2 <a href="https://gofiber.io"> 3 4 <picture> 5 <source height="125" media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/gofiber/docs/master/static/img/logo-dark.svg"> 6 <img height="125" alt="Fiber" src="https://raw.githubusercontent.com/gofiber/docs/master/static/img/logo.svg"> 7 </picture> 8 9 </a> 10 <br> 11 <!-- base64 flags are available at https://www.phoca.cz/cssflags/ --> 12 <!--<a href="https://github.com/gofiber/fiber/blob/master/.github/README.md"> 13 <img height="20px" src="https://img.shields.io/badge/EN-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjAgMzAiIGhlaWdodD0iNjAwIj4NCjxkZWZzPg0KPGNsaXBQYXRoIGlkPSJ0Ij4NCjxwYXRoIGQ9Im0zMCwxNWgzMHYxNXp2MTVoLTMwemgtMzB2LTE1enYtMTVoMzB6Ii8+DQo8L2NsaXBQYXRoPg0KPC9kZWZzPg0KPHBhdGggZmlsbD0iIzAwMjQ3ZCIgZD0ibTAsMHYzMGg2MHYtMzB6Ii8+DQo8cGF0aCBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iNiIgZD0ibTAsMGw2MCwzMG0wLTMwbC02MCwzMCIvPg0KPHBhdGggc3Ryb2tlPSIjY2YxNDJiIiBzdHJva2Utd2lkdGg9IjQiIGQ9Im0wLDBsNjAsMzBtMC0zMGwtNjAsMzAiIGNsaXAtcGF0aD0idXJsKCN0KSIvPg0KPHBhdGggc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjEwIiBkPSJtMzAsMHYzMG0tMzAtMTVoNjAiLz4NCjxwYXRoIHN0cm9rZT0iI2NmMTQyYiIgc3Ryb2tlLXdpZHRoPSI2IiBkPSJtMzAsMHYzMG0tMzAtMTVoNjAiLz4NCjwvc3ZnPg0K"> 14 </a>--> 15 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_ru.md"> 16 <img height="20px" src="https://img.shields.io/badge/RU-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NTAgMzAwIj4NCjxwYXRoIGZpbGw9IiNmZmYiIGQ9Im0wLDBoNDUwdjEwMGgtNDUweiIvPg0KPHBhdGggZmlsbD0iIzAwZiIgZD0ibTAsMTAwaDQ1MHYxMDBoLTQ1MHoiLz4NCjxwYXRoIGZpbGw9IiNmMDAiIGQ9Im0wLDIwMGg0NTB2MTAwaC00NTB6Ii8+DQo8L3N2Zz4NCg=="> 17 </a> 18 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_es.md"> 19 <img height="20px" src="https://img.shields.io/badge/ES-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3NTAgNTAwIj4NCjxwYXRoIGZpbGw9IiNjNjBiMWUiIGQ9Im0wLDBoNzUwdjUwMGgtNzUweiIvPg0KPHBhdGggZmlsbD0iI2ZmYzQwMCIgZD0ibTAsMTI1aDc1MHYyNTBoLTc1MHoiLz4NCjwvc3ZnPg0K"> 20 </a> 21 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_ja.md"> 22 <img height="20px" src="https://img.shields.io/badge/JA-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5MDAgNjAwIj4NCjxwYXRoIGZpbGw9IiNmZmYiIGQ9Im0wLDBoOTAwdjYwMGgtOTAweiIvPg0KPGNpcmNsZSBmaWxsPSIjYmUwMDI2IiBjeD0iNDUwIiBjeT0iMzAwIiByPSIxODAiLz4NCjwvc3ZnPg0K"> 23 </a> 24 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_pt.md"> 25 <img height="20px" src="https://img.shields.io/badge/PT-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHJlY3QgeT0iODUuMzM3IiBzdHlsZT0iZmlsbDojRDgwMDI3OyIgd2lkdGg9IjUxMiIgaGVpZ2h0PSIzNDEuMzI2Ii8+Cjxwb2x5Z29uIHN0eWxlPSJmaWxsOiM2REE1NDQ7IiBwb2ludHM9IjE5Ni42NDEsODUuMzM3IDE5Ni42NDEsMjYxLjU2NSAxOTYuNjQxLDQyNi42NjMgMCw0MjYuNjYzIDAsODUuMzM3ICIvPgo8Y2lyY2xlIHN0eWxlPSJmaWxsOiNGRkRBNDQ7IiBjeD0iMTk2LjY0MSIgY3k9IjI1NiIgcj0iNjQiLz4KPHBhdGggc3R5bGU9ImZpbGw6I0Q4MDAyNzsiIGQ9Ik0xNjAuNjM4LDIyNHY0MC4wMDFjMCwxOS44ODIsMTYuMTE4LDM2LDM2LDM2czM2LTE2LjExOCwzNi0zNlYyMjRIMTYwLjYzOHoiLz4KPHBhdGggc3R5bGU9ImZpbGw6I0YwRjBGMDsiIGQ9Ik0xOTYuNjM4LDI3NmMtNi42MTcsMC0xMi01LjM4My0xMi0xMnYtMTZoMjQuMDAxdjE2QzIwOC42MzgsMjcwLjYxNiwyMDMuMjU0LDI3NiwxOTYuNjM4LDI3NnoiLz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg=="> 26 </a> 27 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_zh-CN.md"> 28 <img height="20px" src="https://img.shields.io/badge/CN-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjAwIDgwMCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KPHBhdGggZmlsbD0iI2RlMjkxMCIgZD0ibTAsMGgxMjAwdjgwMGgtMTIwMHoiLz4NCjxwYXRoIGZpbGw9IiNmZmRlMDAiIGQ9Im0tMTYuNTc5Niw5OS42MDA3bDIuMzY4Ni04LjEwMzItNi45NTMtNC43ODgzIDguNDM4Ni0uMjUxNCAyLjQwNTMtOC4wOTI0IDIuODQ2Nyw3Ljk0NzkgOC40Mzk2LS4yMTMxLTYuNjc5Miw1LjE2MzQgMi44MTA2LDcuOTYwNy02Ljk3NDctNC43NTY3LTYuNzAyNSw1LjEzMzF6IiB0cmFuc2Zvcm09Im1hdHJpeCg5LjkzMzUyIC4yNzc0NyAtLjI3NzQ3IDkuOTMzNTIgMzI0LjI5MjUgLTY5NS4yNDE1KSIvPg0KPHBhdGggZmlsbD0iI2ZmZGUwMCIgaWQ9InN0YXIiIGQ9Im0zNjUuODU1MiwzMzIuNjg5NWwyOC4zMDY4LDExLjM3NTcgMTkuNjcyMi0yMy4zMTcxLTIuMDcxNiwzMC40MzY3IDI4LjI1NDksMTEuNTA0LTI5LjU4NzIsNy40MzUyLTIuMjA5NywzMC40MjY5LTE2LjIxNDItMjUuODQxNS0yOS42MjA2LDcuMzAwOSAxOS41NjYyLTIzLjQwNjEtMTYuMDk2OC0yNS45MTQ4eiIvPg0KPGcgZmlsbD0iI2ZmZGUwMCI+DQo8cGF0aCBkPSJtNTE5LjA3NzksMTc5LjMxMjlsLTMwLjA1MzQtNS4yNDE4LTE0LjM5NDUsMjYuODk3Ni00LjMwMTctMzAuMjAyMy0zMC4wMjkzLTUuMzc4MSAyNy4zOTQ4LTEzLjQyNDItNC4xNjQ3LTMwLjIyMTUgMjEuMjMyNiwyMS45MDU3IDI3LjQ1NTQtMTMuMjk5OC0xNC4yNzIzLDI2Ljk2MjcgMjEuMTMzMSwyMi4wMDE3eiIvPg0KPHBhdGggZD0ibTQ1NS4yNTkyLDMxNS45Nzk1bDkuMzczNC0yOS4wMzE0LTI0LjYzMjUtMTcuOTk3OCAzMC41MDctLjA1NjYgOS41MDUtMjguOTg4NiA5LjQ4MSwyOC45OTY0IDMwLjUwNywuMDgxOC0yNC42NDc0LDE3Ljk3NzQgOS4zNDkzLDI5LjAzOTItMjQuNzE0LTE3Ljg4NTgtMjQuNzI4OCwxNy44NjUzeiIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjc3RhciIgdHJhbnNmb3JtPSJtYXRyaXgoLjk5ODYzIC4wNTIzNCAtLjA1MjM0IC45OTg2MyAxOS40MDAwNSAtMzAwLjUzNjgxKSIvPg0KPC9zdmc+DQo="> 29 </a> 30 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_zh-TW.md"> 31 <img height="20px" src="https://img.shields.io/badge/TW-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmc+DQo8c3ZnIHdpZHRoPSI5MDAiIGhlaWdodD0iNjAwIiB2aWV3Qm94PSItNjAgLTQwIDI0MCAxNjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KICAgPHJlY3QgeD0iLTYwIiB5PSItNDAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9IiNmZTAwMDAiLz4NCiAgIDxyZWN0IHg9Ii02MCIgeT0iLTQwIiB3aWR0aD0iNTAlIiBoZWlnaHQ9IjUwJSIgZmlsbD0iIzAwMDA5NSIvPg0KICAgPHBhdGggaWQ9ImZvdXJfcmF5cyIgZD0iTSA4LDAgTCAwLDMwIEwgLTgsMCBMIDAsLTMwIE0gMCw4IEwgMzAsMCBMIDAsLTggTCAtMzAsMCIgZmlsbD0iI2ZmZiIvPg0KICAgPHVzZSB4bGluazpocmVmPSIjZm91cl9yYXlzIiB0cmFuc2Zvcm09InJvdGF0ZSgzMCkiLz4NCiAgIDx1c2UgeGxpbms6aHJlZj0iI2ZvdXJfcmF5cyIgdHJhbnNmb3JtPSJyb3RhdGUoNjApIi8+DQogICA8Y2lyY2xlIHI9IjE3IiBmaWxsPSIjMDAwMDk1Ii8+DQogICA8Y2lyY2xlIHI9IjE1IiBmaWxsPSIjZmZmIi8+DQo8L3N2Zz4="> 32 </a> 33 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_de.md"> 34 <img height="20px" src="https://img.shields.io/badge/DE-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjYwMCIgdmlld0JveD0iMCAwIDUgMyI+DQo8cGF0aCBkPSJtMCwwaDV2M2gtNXoiLz4NCjxwYXRoIGZpbGw9IiNkMDAiIGQ9Im0wLDFoNXYyaC01eiIvPg0KPHBhdGggZmlsbD0iI2ZmY2UwMCIgZD0ibTAsMmg1djFoLTV6Ii8+DQo8L3N2Zz4NCg=="> 35 </a> 36 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_nl.md"> 37 <img height="20px" src="https://img.shields.io/badge/NL-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNjAwIiB2aWV3Qm94PSIwIDAgOSA2Ij4NCjxwYXRoIGZpbGw9IiMyMTQ2OGIiIGQ9Im0wLDBoOXY2aC05eiIvPg0KPHBhdGggZmlsbD0iI2ZmZiIgZD0ibTAsMGg5djRoLTl6Ii8+DQo8cGF0aCBmaWxsPSIjYWUxYzI4IiBkPSJtMCwwaDl2MmgtOXoiLz4NCjwvc3ZnPg0K"> 38 </a> 39 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_ko.md"> 40 <img height="20px" src="https://img.shields.io/badge/KO-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNjAwIiB2aWV3Qm94PSItMzYgLTI0IDcyIDQ4IiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+DQo8cGF0aCBmaWxsPSIjZmZmIiBkPSJtLTM2LTI0aDcydjQ4aC03MnoiLz4NCjxnIHRyYW5zZm9ybT0ibWF0cml4KC41NTQ3IC0uODMyMDUgLjgzMjA1IC41NTQ3IDAgMCkiPg0KPGcgaWQ9ImIyIj4NCjxwYXRoIHN0cm9rZT0iIzAwMCIgaWQ9ImIiIHN0cm9rZS13aWR0aD0iMiIgZD0iTS02LTI1SDZNLTYtMjJINk0tNi0xOUg2Ii8+DQo8dXNlIHk9IjQ0IiB4bGluazpocmVmPSIjYiIvPg0KPC9nPg0KPHBhdGggc3Ryb2tlPSIjZmZmIiBkPSJtMCwxN3YxMCIvPg0KPGNpcmNsZSBmaWxsPSIjYzYwYzMwIiByPSIxMiIvPg0KPHBhdGggZmlsbD0iIzAwMzQ3OCIgZD0iTTAtMTJBNiw2IDAgMCAwIDAsMEE2LDYgMCAwIDEgMCwxMkExMiwxMiAwIDAsMSAwLTEyWiIvPg0KPC9nPg0KPGcgdHJhbnNmb3JtPSJtYXRyaXgoLS41NTQ3IC0uODMyMDUgLjgzMjA1IC0uNTU0NyAwIDApIj4NCjx1c2UgeGxpbms6aHJlZj0iI2IyIi8+DQo8cGF0aCBzdHJva2U9IiNmZmYiIGQ9Im0wLTIzLjV2M20wLDM3LjV2My41bTAsM3YzIi8+DQo8L2c+DQo8L3N2Zz4NCg=="> 41 </a> 42 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_fr.md"> 43 <img height="20px" src="https://img.shields.io/badge/FR-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5MDAgNjAwIj4NCjxwYXRoIGZpbGw9IiNlZDI5MzkiIGQ9Im0wLDBoOTAwdjYwMGgtOTAweiIvPg0KPHBhdGggZmlsbD0iI2ZmZiIgZD0ibTAsMGg2MDB2NjAwaC02MDB6Ii8+DQo8cGF0aCBmaWxsPSIjMDAyMzk1IiBkPSJtMCwwaDMwMHY2MDBoLTMwMHoiLz4NCjwvc3ZnPg0K"> 44 </a> 45 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_tr.md"> 46 <img height="20px" src="https://img.shields.io/badge/TR-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjgwMCIgdmlld0JveD0iMCAwIDM2MCAyNDAiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4NCjxwYXRoIGZpbGw9IiNlMzBhMTciIGQ9Im0wLDBoMzYwdjI0MGgtMzYweiIvPg0KPGNpcmNsZSBmaWxsPSIjZmZmIiBjeD0iMTIwIiBjeT0iMTIwIiByPSI2MCIvPg0KPGNpcmNsZSBmaWxsPSIjZTMwYTE3IiBjeD0iMTM1IiBjeT0iMTIwIiByPSI0OCIvPg0KPGcgZmlsbD0iI2ZmZiIgdHJhbnNmb3JtPSJtYXRyaXgoMCAtMzAgMzAgMCAyMDAuNyAxMjApIj4NCjxnIGlkPSJnMiI+DQo8cGF0aCBpZD0iZzEiIGQ9Im0wLDAgMCwxIC41LDB6IiB0cmFuc2Zvcm09Im1hdHJpeCguOTUxMDYgLjMwOTAyIC0uMzA5MDIgLjk1MTA2IDAgLTEpIi8+DQo8dXNlIHhsaW5rOmhyZWY9IiNnMSIgdHJhbnNmb3JtPSJzY2FsZSgtMSAxKSIvPg0KPC9nPg0KPHVzZSB4bGluazpocmVmPSIjZzIiIHRyYW5zZm9ybT0icm90YXRlKDcyKSIvPg0KPHVzZSB4bGluazpocmVmPSIjZzIiIHRyYW5zZm9ybT0ibWF0cml4KC4zMDkwMiAtLjk1MTA2IC45NTEwNiAuMzA5MDIgMCAwKSIvPg0KPHVzZSB4bGluazpocmVmPSIjZzIiIHRyYW5zZm9ybT0icm90YXRlKDE0NCkiLz4NCjx1c2UgeGxpbms6aHJlZj0iI2cyIiB0cmFuc2Zvcm09Im1hdHJpeCgtLjgwOTAyIC0uNTg3NzkgLjU4Nzc5IC0uODA5MDIgMCAwKSIvPg0KPC9nPg0KPC9zdmc+DQo="> 47 </a> 48 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_id.md"> 49 <img height="20px" src="https://img.shields.io/badge/ID-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MDAgNDAwIj4NCjxwYXRoIGZpbGw9IiNjZTExMjYiIGQ9Im0wLDBoNjAwdjIwMGgtNjAweiIvPg0KPHBhdGggZmlsbD0iI2ZmZiIgZD0ibTAsMjAwaDYwMHYyMDBoLTYwMHoiLz4NCjwvc3ZnPg0K"> 50 </a> 51 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_he.md"> 52 <img height="20px" src="https://img.shields.io/badge/HE-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjYwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNDgwIiB2aWV3Qm94PSIwIDAgMjIwIDE2MCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KPGRlZnM+DQo8cGF0aCBzdHJva2U9IiMwMDM4YjgiIGZpbGwtb3BhY2l0eT0iMCIgaWQ9InRyaWFuZ2xlIiBzdHJva2Utd2lkdGg9IjUuNSIgZD0ibTAtMjkuMTQxLTI1LjIzNjksNDMuNzExNSA1MC40NzM4LTB6Ii8+DQo8L2RlZnM+DQo8cGF0aCBmaWxsPSIjZmZmIiBkPSJtMCwwaDIyMHYxNjBoLTIyMHoiLz4NCjxnIGZpbGw9IiMwMDM4YjgiPg0KPHBhdGggZD0ibTAsMTVoMjIwdjI1aC0yMjB6Ii8+DQo8cGF0aCBkPSJtMCwxMjBoMjIwdjI1aC0yMjB6Ii8+DQo8L2c+DQo8dXNlIHhsaW5rOmhyZWY9IiN0cmlhbmdsZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEwIDgwKSIvPg0KPHVzZSB4bGluazpocmVmPSIjdHJpYW5nbGUiIHRyYW5zZm9ybT0ibWF0cml4KC0xIDAgLTAgLTEgMTEwIDgwKSIvPg0KPC9zdmc+DQo="> 53 </a> 54 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_sa.md"> 55 <img height="20px" src="https://img.shields.io/badge/SA-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjYwMCIgdmlld0JveD0iMCAwIDEyIDYiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4NCjxwYXRoIGZpbGw9IiNjZTExMjYiIGQ9Im0wLDBoM3Y2aC0zeiIvPg0KPHBhdGggZmlsbD0iIzAwOWEwMCIgZD0ibTMsMGg5djJoLTl6Ii8+DQo8cGF0aCBmaWxsPSIjZmZmIiBkPSJtMywyaDl2MmgtOXoiLz4NCjxwYXRoIGQ9Im0zLDRoOXYyaC05eiIvPg0KPC9zdmc+DQo="> 56 </a> 57 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_fa.md"> 58 <img height="20px" src="https://img.shields.io/badge/IR-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTAwMCIgaGVpZ2h0PSI1NzIuMiIgdmlld0JveD0iLTcuMjE3IC00LjEyOSAxMDAwIDU3Mi4yIj48cGF0aCBkPSJNLTcuMjE3LTQuMTI5aDEwMDB2NTcyLjJoLTEwMDB6IiBmaWxsPSIjMjM5ZjQwIi8+PHBhdGggZD0iTS03LjIxNyAyODEuOTcxaDEwMDB2Mjg2LjFoLTEwMDB6IiBmaWxsPSIjZGEwMDAwIi8+PHBhdGggZD0iTS03LjIxNyAxODYuNTcxaDEwMDB2MTkwLjc1aC0xMDAweiIgZmlsbD0iI2ZmZiIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03LjIxNyAxNTUuNDcxKSBzY2FsZSg0LjQ0NDUpIj48ZyBpZD0iZSI+PGcgaWQ9ImMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiI+PHBhdGggaWQ9ImIiIGQ9Ik0zIC41aDEzTTMuNSA1VjIuNWg0djJoNHYtMkg5bS00IDJoMW0xMCAwaC0yLjV2LTJoNG0wLTIuNXY0LjVoNFYwbS0yIDB2NC41Ii8+PHBhdGggaWQ9ImEiIGQ9Ik0zIDdoOW0xIDBoOSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeT0iNDIuOTEzIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIi8+PHVzZSB4bGluazpocmVmPSIjYiIgeT0iNTEuOTEzIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIi8+PC9nPjxnIGlkPSJkIj48dXNlIHhsaW5rOmhyZWY9IiNjIiB4PSIyMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIvPjx1c2UgeGxpbms6aHJlZj0iI2MiIHg9IjQwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIi8+PHVzZSB4bGluazpocmVmPSIjYyIgeD0iNjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiLz48L2c+PC9nPjx1c2UgeGxpbms6aHJlZj0iI2QiIHg9IjYwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIi8+PHVzZSB4bGluazpocmVmPSIjZSIgeD0iMTQwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIi8+PC9nPjxnIHRyYW5zZm9ybT0ibWF0cml4KDY5LjI4NSAwIDAgNjkuMjg1IDQ5Mi43ODMgMjgxLjk3MSkiIGZpbGw9IiNkYTAwMDAiPjxnIGlkPSJmIj48cGF0aCBkPSJNLS41NDguODM2QS45MTIuOTEyIDAgMCAwIC4zMjktLjcyMiAxIDEgMCAwIDEtLjU0OC44MzYiLz48cGF0aCBkPSJNLjYxOC42NjFBLjc2NC43NjQgMCAwIDAgLjQyMi0uNzQgMSAxIDAgMCAxIC42MTguNjYxTTAgMWwtLjA1LTFMMC0uNzg3YS4zMS4zMSAwIDAgMCAuMTE4LjA5OVYtLjFsLS4wNC45OTN6TS0uMDItLjg1TDAtLjgzMWEuMTQ0LjE0NCAwIDAgMCAuMjUyLS4xMzdBLjEzNi4xMzYgMCAwIDEgMC0uOTI1Ii8+PC9nPjx1c2UgeGxpbms6aHJlZj0iI2YiIHRyYW5zZm9ybT0ic2NhbGUoLTEgMSkiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiLz48L2c+PC9zdmc+"> 59 </a> 60 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_it.md"> 61 <img height="20px" src="https://img.shields.io/badge/IT-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBoZWlnaHQ9IjEwMDAiIHZpZXdCb3g9IjAgMCAzIDIiPg0KPHBhdGggZmlsbD0iIzAwOTI0NiIgZD0ibTAsMGgxdjJoLTF6Ii8+DQo8cGF0aCBmaWxsPSIjZmZmIiBkPSJtMSwwaDF2MmgtMXoiLz4NCjxwYXRoIGZpbGw9IiNjZTJiMzciIGQ9Im0yLDBoMXYyaC0xeiIvPg0KPC9zdmc+DQo="> 62 </a> 63 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_ckb.md"> 64 <img height="20px" src="https://img.shields.io/badge/CKB-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5MDAiIGhlaWdodD0iNjAwIj48ZyBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0wIDBoOTAwdjYwMEgweiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0wIDBoOTAwdjIwMEgweiIgZmlsbD0iI2VkMjAyNCIvPjxwYXRoIGQ9Ik0wIDQwMGg5MDB2MjAwSDB6IiBmaWxsPSIjMjc4ZTQzIi8+PC9nPjxwYXRoIGQ9Ik00NTAgMTUwbDExLjI0IDc2LjI2NCAzMy4yMjItNjkuNTYzLTExLjczOCA3Ni4xOSA1Mi4yNDktNTYuNjgtMzMuNjc0IDY5LjM0NCA2Ni42MzQtMzguNzYxLTUyLjYxNiA1Ni4zMzggNzUuMDk4LTE3LjM5OS02Ni44ODUgMzguMzI3IDc2Ljg5IDUuNTEtNzUuMjEgMTYuOTA5IDcxLjg1IDI3LjkyOS03Ni44NTItNi4wMTEgNjAuNDI1IDQ3Ljg2Ny03MS42NjYtMjguMzk3IDQzLjYzMiA2My41NS02MC4xMTMtNDguMjU5IDIyLjk2MiA3My41ODktNDMuMjE3LTYzLjgzNC4yNSA3Ny4wODdMNDUwIDM3Ni4yNjQgNDI3LjUxOCA0NTBsLjI1MS03Ny4wODctNDMuMjE3IDYzLjgzNCAyMi45NjItNzMuNTg5LTYwLjExMyA0OC4yNiA0My42MzItNjMuNTUxLTcxLjY2NiAyOC4zOTcgNjAuNDI1LTQ3Ljg2Ny03Ni44NTIgNi4wMTEgNzEuODUtMjcuOTMtNzUuMjEtMTYuOTA4IDc2Ljg5LTUuNTEtNjYuODg1LTM4LjMyNyA3NS4wOTggMTcuMzk5LTUyLjYxNi01Ni4zMzggNjYuNjM0IDM4Ljc2LTMzLjY3NC02OS4zNDMgNTIuMjQ5IDU2LjY4LTExLjczOC03Ni4xOSAzMy4yMjEgNjkuNTYzeiIgZmlsbD0iI2ZlYmQxMSIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+"> 65 </a> 66 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_uk.md"> 67 <img height="20px" src="https://img.shields.io/badge/UK-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDU1LjIgMzguNCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTUuMiAzOC40IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWwoJLnN0MHtmaWxsOiNGRkQ1MDA7fQoJLnN0MXtmaWxsOiMwMDVCQkI7fQpdXT48L3N0eWxlPjxnPjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zLjAzLDBoNDkuMTNjMS42NywwLDMuMDMsMS4zNiwzLjAzLDMuMDN2MzIuMzNjMCwxLjY3LTEuMzcsMy4wMy0zLjAzLDMuMDNIMy4wM0MxLjM3LDM4LjQsMCwzNy4wNCwwLDM1LjM3IFYzLjAzQzAsMS4zNiwxLjM3LDAsMy4wMywwTDMuMDMsMHoiLz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMCwxOS4yaDU1LjJ2MTYuMTdjMCwxLjY3LTEuMzcsMy4wMy0zLjAzLDMuMDNIMy4wM0MxLjM3LDM4LjQsMCwzNy4wNCwwLDM1LjM3VjE5LjJMMCwxOS4yeiIvPjwvZz48L3N2Zz4="> 68 </a> 69 <br> 70 <a href="https://pkg.go.dev/github.com/gofiber/fiber/v2#pkg-overview"> 71 <img src="https://img.shields.io/badge/%F0%9F%93%9A%20godoc-pkg-00ACD7.svg?color=00ACD7&style=flat-square"> 72 </a> 73 <a href="https://goreportcard.com/report/github.com/gofiber/fiber/v2"> 74 <img src="https://img.shields.io/badge/%F0%9F%93%9D%20goreport-A%2B-75C46B?style=flat-square"> 75 </a> 76 <a href="https://gocover.io/github.com/gofiber/fiber"> 77 <img src="https://img.shields.io/badge/%F0%9F%94%8E%20gocover-97.8%25-75C46B.svg?style=flat-square"> 78 </a> 79 <a href="https://github.com/gofiber/fiber/actions?query=workflow%3ASecurity"> 80 <img src="https://img.shields.io/github/actions/workflow/status/gofiber/fiber/security.yml?branch=master&label=%F0%9F%94%91%20gosec&style=flat-square&color=75C46B"> 81 </a> 82 <a href="https://github.com/gofiber/fiber/actions?query=workflow%3ATest"> 83 <img src="https://img.shields.io/github/actions/workflow/status/gofiber/fiber/test.yml?branch=master&label=%F0%9F%A7%AA%20tests&style=flat-square&color=75C46B"> 84 </a> 85 <a href="https://docs.gofiber.io"> 86 <img src="https://img.shields.io/badge/%F0%9F%92%A1%20fiber-docs-00ACD7.svg?style=flat-square"> 87 </a> 88 <a href="https://gofiber.io/discord"> 89 <img src="https://img.shields.io/discord/704680098577514527?style=flat-square&label=%F0%9F%92%AC%20discord&color=00ACD7"> 90 </a> 91 92 </p> 93 <p align="center"> 94 <b>Fiber</b> <a href="https://go.dev/doc/">Go</a> dili üçün ən sürətli HTTP mühərriki <a href="https://github.com/valyala/fasthttp">Fasthttp</a> və <a href="https://github.com/expressjs/express">Express</a> kitabxanasına bənzər arxitektura üzərində qurulmuş bir <b>web framework-dür</b>. <b>Sıfır yaddaş ayrılması (zero-memory allocation)</b> və performans səbəbilə development prosesini <b>sürətləndirmək</b> və <b>asanlaşdırmaq</b> üçün tərtib edilmişdir. 95 </p> 96 97 ## ⚡️ Sürətli Başlanğıc 98 99 ```go 100 package main 101 102 import "github.com/gofiber/fiber/v2" 103 104 func main() { 105 app := fiber.New() 106 107 app.Get("/", func(c *fiber.Ctx) error { 108 return c.SendString("Hello, World 👋!") 109 }) 110 111 app.Listen(":3000") 112 } 113 ``` 114 115 ## 🤖 Performans Dəyərləri 116 117 Bu testlər [TechEmpower](https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=plaintext) və [Go Web](https://github.com/smallnest/go-web-framework-benchmark) tərəfindən aparılıb. Bütün nəticələri görmək üçün [Wiki](https://docs.gofiber.io/extra/benchmarks) səhifəsinə keçid edə bilərsiniz. 118 119 <p float="left" align="middle"> 120 <img src="https://raw.githubusercontent.com/gofiber/docs/master/static/img/benchmark-pipeline.png" width="49%"> 121 <img src="https://raw.githubusercontent.com/gofiber/docs/master/static/img/benchmark_alloc.png" width="49%"> 122 </p> 123 124 ## ⚙️ Quraşdırılması 125 126 Go dilinin `1.17` və ya daha yuxarı versiyanın [yükləndiyindən](https://go.dev/dl/) əmin olun. 127 128 129 Bir qovluq yaratdıqdan sonra, `go mod init github.com/your/repo` komandasını eyni qovluğun daxilində işə salaraq layihənizi başladın ([go modulları haqqında əlavə bilgilər](https://go.dev/blog/using-go-modules)). Növbəti addım olaraq Fiber-i [`go get`](https://pkg.go.dev/cmd/go/#hdr-Add_dependencies_to_current_module_and_install_them) komandasını işlədərək yükləyin: 130 131 ```bash 132 go get -u github.com/gofiber/fiber/v2 133 ``` 134 135 ## 🎯 Özəllikləri 136 137 - Güclü [routing](https://docs.gofiber.io/guide/routing) 138 - [Static faylların](https://docs.gofiber.io/api/app#static) təqdimatı 139 - Yüksək [performans](https://docs.gofiber.io/extra/benchmarks) 140 - [Daha az yaddaş istifadəsi](https://docs.gofiber.io/extra/benchmarks) 141 - [API son nöqtələri (endpoint)](https://docs.gofiber.io/api/ctx) 142 - [Middleware](https://docs.gofiber.io/category/-middleware) & [Next](https://docs.gofiber.io/api/ctx#next) dəstəyi 143 - [Rapid](https://dev.to/koddr/welcome-to-fiber-an-express-js-styled-fastest-web-framework-written-with-on-golang-497) server yönümlü proqramlaşdırma 144 - [Template mühərrikləri](https://github.com/gofiber/template) 145 - [WebSocket dəstəyi](https://github.com/gofiber/websocket) 146 - [Server-Sent events](https://github.com/gofiber/recipes/tree/master/sse) 147 - [Rate Limiter](https://docs.gofiber.io/api/middleware/limiter) 148 - [18 dildə](https://docs.gofiber.io/) mövcudluğu 149 150 Daha ətraflı məlumat üçün [rəsmi sənədləşməyə](https://docs.gofiber.io/) baxış keçirə bilərsiniz. 151 152 ## 💡 Fəlsəfə 153 154 [Node.js](https://nodejs.org/en/about/)-dən [Go](https://go.dev/doc/)-ya yeni keçən gopher-lər veb tətbiqlər və mikroservislər yazmadan öncə dilin özünəməxsus sintaksisini öyrənməklə məşğul olurlar. Fiber <b></b><b></b><b>Minimalizm</b> və <b>UNIX-in yaradılış prinsiplərinə </b> uyğun şəkildə qurulmuş bir web framework-dür. Bu sahədə yeni olan gopher-lər Go dünyasında özlərini doğma və güvənli hiss edə biləcək şəkildə bir ab-hava ilə rastlaşa bilərlər. 155 156 Fiber internet üzərində olan ən məşhur web framework-lərdən biri olan Express-dən ilhamlanaraq ərsəyə gəlmişdir. Biz Express-in rahatlıq və asanlıq xüsusiyyətlərini, Go-nun çiy performansı ilə birləşdirmişik; əgər əvvəldən Node.js üzərində (Express və ya bənzərləri) veb tətbiqi yaratmısınızsa, onda əksər metodlar və prinsiplər sizə tanış gələcəkdir. 157 158 Biz istifadəçilərdən gələn [issue-a](https://github.com/gofiber/fiber/issues), Discord [kanalımıza](https://gofiber.io/discord) və bütün interneti əhatə edən vasitələrdən gələn rəyləri nəzərə alırıq. Bunun nəzdində, biz sürətli və rahat şəkildə hər bir tapşırığın səviyyəsinə uyğun olan — dostcasına bir Go web framework-ü olmağı hədəfləmişik (Express-in JavaScript dünyasında etdiyi kimi). 159 160 ## ⚠️ Limitlər 161 * Fiber unsafe prinsiplərə əsaslanaraq çalışdığından, o hər zaman Go-nun son versiyası ilə uyğunlaşmaya bilər. Buna görə də, Fiber 2.40.0 — Go 1.17 və 1.20 versiyaları ilə test edilərək saz vəziyyətə gətirilmişdir. 162 * Fiber net/http interfeysləri ilə uyğun deyil. Yəni gqlgen, go-swagger kimi net/http ekosisteminin parçası olan layihələri istifadə edə bilməzsiniz. 163 164 ## 👀 Misallar 165 166 Aşağıda geniş istifadə olunan misallardan bəziləri siyahı şəklində qeyd olunub. Əgər daha çox koda dair misalları görmək istəyirsinizsə, onda [Əlavə misallardan ibarət github deposunu](https://github.com/gofiber/recipes) və ya [API sənədləşməni](https://docs.gofiber.io) nəzərdən keçirin. 167 168 #### 📖 [**Sadə Routing**](https://docs.gofiber.io/#basic-routing) 169 170 ```go 171 func main() { 172 app := fiber.New() 173 174 // GET /api/register 175 app.Get("/api/*", func(c *fiber.Ctx) error { 176 msg := fmt.Sprintf("✋ %s", c.Params("*")) 177 return c.SendString(msg) // => ✋ register 178 }) 179 180 // GET /flights/LAX-SFO 181 app.Get("/flights/:from-:to", func(c *fiber.Ctx) error { 182 msg := fmt.Sprintf("💸 From: %s, To: %s", c.Params("from"), c.Params("to")) 183 return c.SendString(msg) // => 💸 From: LAX, To: SFO 184 }) 185 186 // GET /dictionary.txt 187 app.Get("/:file.:ext", func(c *fiber.Ctx) error { 188 msg := fmt.Sprintf("📃 %s.%s", c.Params("file"), c.Params("ext")) 189 return c.SendString(msg) // => 📃 dictionary.txt 190 }) 191 192 // GET /john/75 193 app.Get("/:name/:age/:gender?", func(c *fiber.Ctx) error { 194 msg := fmt.Sprintf("👴 %s is %s years old", c.Params("name"), c.Params("age")) 195 return c.SendString(msg) // => 👴 john is 75 years old 196 }) 197 198 // GET /john 199 app.Get("/:name", func(c *fiber.Ctx) error { 200 msg := fmt.Sprintf("Hello, %s 👋!", c.Params("name")) 201 return c.SendString(msg) // => Hello john 👋! 202 }) 203 204 log.Fatal(app.Listen(":3000")) 205 } 206 207 ``` 208 209 #### 📖 [**Route-un Adlandırılması**](https://docs.gofiber.io/api/app#name) 210 211 ```go 212 func main() { 213 app := fiber.New() 214 215 // GET /api/register 216 app.Get("/api/*", func(c *fiber.Ctx) error { 217 msg := fmt.Sprintf("✋ %s", c.Params("*")) 218 return c.SendString(msg) // => ✋ register 219 }).Name("api") 220 221 data, _ := json.MarshalIndent(app.GetRoute("api"), "", " ") 222 fmt.Print(string(data)) 223 // Prints: 224 // { 225 // "method": "GET", 226 // "name": "api", 227 // "path": "/api/*", 228 // "params": [ 229 // "*1" 230 // ] 231 // } 232 233 234 log.Fatal(app.Listen(":3000")) 235 } 236 237 ``` 238 239 #### 📖 [**Static Fayl Təqdimatı**](https://docs.gofiber.io/api/app#static) 240 241 ```go 242 func main() { 243 app := fiber.New() 244 245 app.Static("/", "./public") 246 // => http://localhost:3000/js/script.js 247 // => http://localhost:3000/css/style.css 248 249 app.Static("/prefix", "./public") 250 // => http://localhost:3000/prefix/js/script.js 251 // => http://localhost:3000/prefix/css/style.css 252 253 app.Static("*", "./public/index.html") 254 // => http://localhost:3000/any/path/shows/index/html 255 256 log.Fatal(app.Listen(":3000")) 257 } 258 259 ``` 260 261 #### 📖 [**Middleware & Next**](https://docs.gofiber.io/api/ctx#next) 262 263 ```go 264 func main() { 265 app := fiber.New() 266 267 // Match any route 268 app.Use(func(c *fiber.Ctx) error { 269 fmt.Println("🥇 First handler") 270 return c.Next() 271 }) 272 273 // Match all routes starting with /api 274 app.Use("/api", func(c *fiber.Ctx) error { 275 fmt.Println("🥈 Second handler") 276 return c.Next() 277 }) 278 279 // GET /api/list 280 app.Get("/api/list", func(c *fiber.Ctx) error { 281 fmt.Println("🥉 Last handler") 282 return c.SendString("Hello, World 👋!") 283 }) 284 285 log.Fatal(app.Listen(":3000")) 286 } 287 288 ``` 289 290 <details> 291 <summary>📚 Daha çox misalllar</summary> 292 293 ### Baxış mühərriki (View Engine) 294 295 📖 [Config](https://docs.gofiber.io/api/fiber#config) 296 📖 [Mühərriklər](https://github.com/gofiber/template) 297 📖 [Render](https://docs.gofiber.io/api/ctx#render) 298 299 Fiber baxış mühərriki təyin edilmədikdə [html/template-in](https://pkg.go.dev/html/template/) default formasını alır. 300 301 Əgər siz partial-ı və ya müxtəlif tipdə olan mühərrikləri istifadə etmək istəyirsinizsə, o zaman [amber](https://github.com/eknkc/amber), [handlebars](https://github.com/aymerick/raymond), [mustache](https://github.com/cbroglie/mustache), [pug](https://github.com/Joker/jade) və s. kimi misallara baxa bilərsiniz. 302 303 Çoxsaylı baxış mühərriklərini dəstəkləyən [template](https://github.com/gofiber/template) package-ə göstərilən link vasitəsilə nəzərdən keçirə bilərsiniz. 304 305 ```go 306 package main 307 308 import ( 309 "github.com/gofiber/fiber/v2" 310 "github.com/gofiber/template/pug" 311 ) 312 313 func main() { 314 // Baxış mühərrikini tətbiqi başlatzmadan əvvəl quraşdıra bilərsiniz: 315 app := fiber.New(fiber.Config{ 316 Views: pug.New("./views", ".pug"), 317 }) 318 319 // Və indi `./views/home.pug` template-i bu şəkildə çağıra bilərsiniz: 320 app.Get("/", func(c *fiber.Ctx) error { 321 return c.Render("home", fiber.Map{ 322 "title": "Homepage", 323 "year": 1999, 324 }) 325 }) 326 327 log.Fatal(app.Listen(":3000")) 328 } 329 ``` 330 331 ### Route-ın zəncirlərdə qruplaşdırılması 332 333 📖 [Group](https://docs.gofiber.io/api/app#group) 334 335 ```go 336 func middleware(c *fiber.Ctx) error { 337 fmt.Println("Don't mind me!") 338 return c.Next() 339 } 340 341 func handler(c *fiber.Ctx) error { 342 return c.SendString(c.Path()) 343 } 344 345 func main() { 346 app := fiber.New() 347 348 // Root API route 349 api := app.Group("/api", middleware) // /api 350 351 // API v1 routes 352 v1 := api.Group("/v1", middleware) // /api/v1 353 v1.Get("/list", handler) // /api/v1/list 354 v1.Get("/user", handler) // /api/v1/user 355 356 // API v2 routes 357 v2 := api.Group("/v2", middleware) // /api/v2 358 v2.Get("/list", handler) // /api/v2/list 359 v2.Get("/user", handler) // /api/v2/user 360 361 // ... 362 } 363 364 ``` 365 366 ### Middleware Logger 367 368 📖 [Logger](https://docs.gofiber.io/api/middleware/logger) 369 370 ```go 371 package main 372 373 import ( 374 "log" 375 376 "github.com/gofiber/fiber/v2" 377 "github.com/gofiber/fiber/v2/middleware/logger" 378 ) 379 380 func main() { 381 app := fiber.New() 382 383 app.Use(logger.New()) 384 385 // ... 386 387 log.Fatal(app.Listen(":3000")) 388 } 389 ``` 390 391 ### Cross-Origin Resource Sharing (CORS) 392 393 📖 [CORS](https://docs.gofiber.io/api/middleware/cors) 394 395 ```go 396 import ( 397 "log" 398 399 "github.com/gofiber/fiber/v2" 400 "github.com/gofiber/fiber/v2/middleware/cors" 401 ) 402 403 func main() { 404 app := fiber.New() 405 406 app.Use(cors.New()) 407 408 // ... 409 410 log.Fatal(app.Listen(":3000")) 411 } 412 ``` 413 414 "Origin" başlığında istənilən domeni keçməklə CORS-un yoxlanması: 415 416 ```bash 417 curl -H "Origin: http://example.com" --verbose http://localhost:3000 418 ``` 419 420 ### Custom 404 response 421 422 📖 [HTTP Methods](https://docs.gofiber.io/api/ctx#status) 423 424 ```go 425 func main() { 426 app := fiber.New() 427 428 app.Static("/", "./public") 429 430 app.Get("/demo", func(c *fiber.Ctx) error { 431 return c.SendString("This is a demo!") 432 }) 433 434 app.Post("/register", func(c *fiber.Ctx) error { 435 return c.SendString("Welcome!") 436 }) 437 438 // Sonuncu middleware-in hər şeyə uyğunlaşdırılması 439 app.Use(func(c *fiber.Ctx) error { 440 return c.SendStatus(404) 441 // => 404 "Not Found" 442 }) 443 444 log.Fatal(app.Listen(":3000")) 445 } 446 ``` 447 448 ### JSON Response 449 450 📖 [JSON](https://docs.gofiber.io/api/ctx#json) 451 452 ```go 453 type User struct { 454 Name string `json:"name"` 455 Age int `json:"age"` 456 } 457 458 func main() { 459 app := fiber.New() 460 461 app.Get("/user", func(c *fiber.Ctx) error { 462 return c.JSON(&User{"John", 20}) 463 // => {"name":"John", "age":20} 464 }) 465 466 app.Get("/json", func(c *fiber.Ctx) error { 467 return c.JSON(fiber.Map{ 468 "success": true, 469 "message": "Hi John!", 470 }) 471 // => {"success":true, "message":"Hi John!"} 472 }) 473 474 log.Fatal(app.Listen(":3000")) 475 } 476 ``` 477 478 ### WebSocket-in təkminləşdirilməsi (upgrade) 479 480 📖 [Websocket](https://github.com/gofiber/websocket) 481 482 ```go 483 import ( 484 "github.com/gofiber/fiber/v2" 485 "github.com/gofiber/fiber/v2/middleware/websocket" 486 ) 487 488 func main() { 489 app := fiber.New() 490 491 app.Get("/ws", websocket.New(func(c *websocket.Conn) { 492 for { 493 mt, msg, err := c.ReadMessage() 494 if err != nil { 495 log.Println("read:", err) 496 break 497 } 498 log.Printf("recv: %s", msg) 499 err = c.WriteMessage(mt, msg) 500 if err != nil { 501 log.Println("write:", err) 502 break 503 } 504 } 505 })) 506 507 log.Fatal(app.Listen(":3000")) 508 // ws://localhost:3000/ws 509 } 510 ``` 511 512 ### Server-Sent Events 513 514 📖 [More Info](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events) 515 516 ```go 517 import ( 518 "github.com/gofiber/fiber/v2" 519 "github.com/valyala/fasthttp" 520 ) 521 522 func main() { 523 app := fiber.New() 524 525 app.Get("/sse", func(c *fiber.Ctx) error { 526 c.Set("Content-Type", "text/event-stream") 527 c.Set("Cache-Control", "no-cache") 528 c.Set("Connection", "keep-alive") 529 c.Set("Transfer-Encoding", "chunked") 530 531 c.Context().SetBodyStreamWriter(fasthttp.StreamWriter(func(w *bufio.Writer) { 532 fmt.Println("WRITER") 533 var i int 534 535 for { 536 i++ 537 msg := fmt.Sprintf("%d - the time is %v", i, time.Now()) 538 fmt.Fprintf(w, "data: Message: %s\n\n", msg) 539 fmt.Println(msg) 540 541 w.Flush() 542 time.Sleep(5 * time.Second) 543 } 544 })) 545 546 return nil 547 }) 548 549 log.Fatal(app.Listen(":3000")) 550 } 551 ``` 552 553 ### Middleware-in Bərpası 554 555 📖 [Recover](https://docs.gofiber.io/api/middleware/recover) 556 557 ```go 558 import ( 559 "github.com/gofiber/fiber/v2" 560 "github.com/gofiber/fiber/v2/middleware/recover" 561 ) 562 563 func main() { 564 app := fiber.New() 565 566 app.Use(recover.New()) 567 568 app.Get("/", func(c *fiber.Ctx) error { 569 panic("normally this would crash your app") 570 }) 571 572 log.Fatal(app.Listen(":3000")) 573 } 574 ``` 575 576 </details> 577 578 ### Etibarlı Proxy İstifadəsi 579 580 📖 [Config](https://docs.gofiber.io/api/fiber#config) 581 582 ```go 583 import ( 584 "github.com/gofiber/fiber/v2" 585 "github.com/gofiber/fiber/v2/middleware/recover" 586 ) 587 588 func main() { 589 app := fiber.New(fiber.Config{ 590 EnableTrustedProxyCheck: true, 591 TrustedProxies: []string{"0.0.0.0", "1.1.1.1/30"}, // IP address or IP address range 592 ProxyHeader: fiber.HeaderXForwardedFor, 593 }) 594 595 // ... 596 597 log.Fatal(app.Listen(":3000")) 598 } 599 ``` 600 601 </details> 602 603 ## 🧬 Daxili Middleware 604 605 Aşağıda Fiber-in daxilində olan middleware-lər siyahı şəklində göstərilmişdir. 606 607 | Middleware | Açıqlama | 608 |:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 609 | [basicauth](https://github.com/gofiber/fiber/tree/master/middleware/basicauth) | Sadə bir auth middleware-dir və HTTP Basic Auth yaratmaq üçün istifadə olunur. Keçərli vəsiqə (credentials) bilgiləri üçün sonrakı handler-i, əksik və ya keçərsiz vəsiqə bilgiləri üçün 401 qaytarır. | 610 | [cache](https://github.com/gofiber/fiber/tree/master/middleware/cache) | Response-ı dayandırır və keşə yerləşdirir. | 611 | [compress](https://github.com/gofiber/fiber/tree/master/middleware/compress) | Fiber üçün sıxışdırma (compression) middleware-dir. Default olaraq `deflate`, `gzip` və `brotli` dəstəkləyir. | 612 | [cors](https://github.com/gofiber/fiber/tree/master/middleware/cors) | Çeşidli seçimlərlə başlanğıclar arası mənbə paylaşımı (CORS) aktivləşdirir. | 613 | [csrf](https://github.com/gofiber/fiber/tree/master/middleware/csrf) | CSRF exploit-dən qorunmasını təmin edir. | 614 | [encryptcookie](https://github.com/gofiber/fiber/tree/master/middleware/encryptcookie) | Encrypt middleware-i cookie dəyərlərini şifrələyir. | 615 | [envvar](https://github.com/gofiber/fiber/tree/master/middleware/envvar) | Environment dəyərlərini göstərilən config-ə görə təyin edir. | 616 | [etag](https://github.com/gofiber/fiber/tree/master/middleware/etag) | Keşlərin daha səmərəli istifadəsinə və bant genişliyinə qənaət etməyə imkan verən ETag middleware-i; məzmun dəyişməyibsə veb serverin response-nı təkrar göndərməsinin qarşısını alır. | 617 | [expvar](https://github.com/gofiber/fiber/tree/master/middleware/expvar) | Expvar middleware, HTTP serverlərinin bəzi runtime dəyərlərini JSON formatında göstərir. | 618 | [favicon](https://github.com/gofiber/fiber/tree/master/middleware/favicon) | Əgər faylın yolu (path) göstərilmişdirsə, artıq loglarda olan favicon-u yox sayıb onu saxlanan depodan götürür. | 619 | [filesystem](https://github.com/gofiber/fiber/tree/master/middleware/filesystem) | Fiber üçün fayl sistem middleware-i. Alireza Salary-ə xüsusi təşəkkürlər. | 620 | [limiter](https://github.com/gofiber/fiber/tree/master/middleware/limiter) | Fiber üçün rate limitləyən middleware. Açıq API-ə və ya şifrə yeniləmə kimi endpoint-ə yönəlik təkrarlanan request-in qarşısını alır. | 621 | [logger](https://github.com/gofiber/fiber/tree/master/middleware/logger) | HTTP istək/cavab (request/response) logger-i. | 622 | [monitor](https://github.com/gofiber/fiber/tree/master/middleware/monitor) | Monitor middleware-i serverin metriklərini report edər ("Express-status-monitor"-dan qaynaqlanıb). | 623 | [pprof](https://github.com/gofiber/fiber/tree/master/middleware/pprof) | Matthew Lee-yə xüsusi təşəkkürlər \(@mthli\). | 624 | [proxy](https://github.com/gofiber/fiber/tree/master/middleware/proxy) | Birdən çox server-ə proxy istəyi göndərməyiniz üçündür. | 625 | [recover](https://github.com/gofiber/fiber/tree/master/middleware/recover) | Recover middleware-i stack chain-ni hər hansı bir yerindəki paniklərdən qurtulmasına kömək edir və kontrolu mərkəzləşdirilmiş [ErrorHandler-ə](https://docs.gofiber.io/guide/error-handling) ötürür.| 626 | [requestid](https://github.com/gofiber/fiber/tree/master/middleware/requestid) | Hər request üçün ayrı request id yaradır. | 627 | [session](https://github.com/gofiber/fiber/tree/master/middleware/session) | Session üçün middleware. Qeyd: Bu middleware Fiber-in öz storage struktrunu istifadə edir. | 628 | [skip](https://github.com/gofiber/fiber/tree/master/middleware/skip) | Skip middleware-i verilən şərt true olduğu halda handler-i görməyərək üstündən ötüb keçir. | 629 | [timeout](https://github.com/gofiber/fiber/tree/master/middleware/timeout) | Bir request üçün maksimum vaxt əlavə edir. Əgər arada fasilə yaranarsa, onda proses məhz ErrorHandler-ə göndərilərək icra edilir. | 630 | [keyauth](https://github.com/gofiber/keyauth) | Key giriş middleware-i, key əsaslı bir authentication metodudur. | 631 | [redirect](https://github.com/gofiber/redirect) | Yönləndirmə üçün middleware. | 632 | [rewrite](https://github.com/gofiber/rewrite) | Rewrite middleware-i verilən qanunlara əsasən URL yolunu (path) yenidən yazır. Geri dönüşün icrası üçün uyğunluq təşkil edən təsviri linklərin yaradılması üçün nəzərdə tutulmuşdur. | 633 | [adaptor](https://github.com/gofiber/adaptor) | Fiber request handler-dən net/http handler-ə çevirici. @arsmn-ə xüsusi təşəkkürlər! | 634 | [helmet](https://github.com/gofiber/helmet) | Fərqli HTTP header istifadə edərək tətbiqi daha təhlükəsiz saxlamağa kömək edir. | 635 636 ## 🧬 Xarici Middleware 637 638 [Fiber komandası](https://github.com/orgs/gofiber/people) tərəfindən dəstəklənən və inkişaf etdirilən middleware-in siyahısı. 639 640 | Middleware | Description | 641 | :------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 642 | [jwt](https://github.com/gofiber/jwt) | JWT, JSON Web Token(JWT) girişi qaytaran bir middleware-dir. | 643 | [storage](https://github.com/gofiber/storage) | Fiber-in Storage arxitekturasını dəstəkləyən bir sıra storage driver verir. Bu sayədə storage-ə ehtiyac duyan Fiber middleware-də rahatlıqla istifadə oluna bilər. | 644 | [template](https://github.com/gofiber/template) | Bu paket, Fiber `v1.10.x`, Go versiyası 1.13 və ya daha yuxarı olduqda istifadə oluna bilər. 8 template mühərriki var. | 645 | [websocket](https://github.com/gofiber/websocket) | Yerlilərin dəstəyi ilə WebSocket-ə əsaslanan Fiber üçün Fasthttp. | 646 647 ## 🕶️ Möhtəşəm Siyahı 648 649 Əlavə yazılar, middleware-lər, misallar, və alətlər üçün bizim [möhtəşəm siyahımıza](https://github.com/gofiber/awesome-fiber) göz atın. 650 651 ## 👍 Dəstək Nümayişi 652 653 Əgər `Fiber`-ə dəstək olmaq və ya **təşəkkür etmək** istəyirsinizsə: 654 655 1. Layihəni [GitHub Ulduzu](https://github.com/gofiber/fiber/stargazers) ilə işarələyin. 656 2. Layihə haqqında [şəxsi twitter hesabınızda](https://twitter.com/intent/tweet?text=Fiber%20is%20an%20Express%20inspired%20%23web%20%23framework%20built%20on%20top%20of%20Fasthttp%2C%20the%20fastest%20HTTP%20engine%20for%20%23Go.%20Designed%20to%20ease%20things%20up%20for%20%23fast%20development%20with%20zero%20memory%20allocation%20and%20%23performance%20in%20mind%20%F0%9F%9A%80%20https%3A%2F%2Fgithub.com%2Fgofiber%2Ffiber) paylaşın. 657 3. [Medium](https://medium.com/), [Dev.to](https://dev.to/) və ya şəxsi bloqunuz üzərindən bir incələmə və ya tədris yönümlü bir yazı dərc edin. 658 4. Bizim üçün, sadəcə bir [fincan kofe alın](https://buymeacoff.ee/fenny). 659 660 ## ☕ "Bir fincan kofe almaq" məsələsi 661 662 Fiber açıq qaynaqlı bir layihə olduğu üçün, gəlirlərini yalnız ianələr vasitəsilə təmin edir və bu da domain adı, gitbook, netlify, serverless hosting xərcləri üçün istifadə olunur. Belə olduğu halda, Fiber-ə ən yaxşı dəstək elə bizim üçün ☕ [**bir kofe almaqdan gələ bilər**](https://buymeacoff.ee/fenny). 663 664 | | İstifadəçi | İanə | 665 | :--------------------------------------------------------- | :----------------------------------------------- | :------- | 666 |  | [@destari](https://github.com/destari) | ☕ x 10 | 667 |  | [@dembygenesis](https://github.com/dembygenesis) | ☕ x 5 | 668 |  | [@thomasvvugt](https://github.com/thomasvvugt) | ☕ x 5 | 669 |  | [@hendratommy](https://github.com/hendratommy) | ☕ x 5 | 670 |  | [@ekaputra07](https://github.com/ekaputra07) | ☕ x 5 | 671 |  | [@jorgefuertes](https://github.com/jorgefuertes) | ☕ x 5 | 672 |  | [@candidosales](https://github.com/candidosales) | ☕ x 5 | 673 |  | [@l0nax](https://github.com/l0nax) | ☕ x 3 | 674 |  | [@bihe](https://github.com/bihe) | ☕ x 3 | 675 |  | [@justdave](https://github.com/justdave) | ☕ x 3 | 676 |  | [@koddr](https://github.com/koddr) | ☕ x 1 | 677 |  | [@lapolinar](https://github.com/lapolinar) | ☕ x 1 | 678 |  | [@diegowifi](https://github.com/diegowifi) | ☕ x 1 | 679 |  | [@ssimk0](https://github.com/ssimk0) | ☕ x 1 | 680 |  | [@raymayemir](https://github.com/raymayemir) | ☕ x 1 | 681 |  | [@melkorm](https://github.com/melkorm) | ☕ x 1 | 682 |  | [@marvinjwendt](https://github.com/marvinjwendt) | ☕ x 1 | 683 |  | [@toishy](https://github.com/toishy) | ☕ x 1 | 684 685 ## 💻 Koda Töhfə Verənlər 686 687 <img src="https://opencollective.com/fiber/contributors.svg?width=890&button=false" alt="Code Contributors" style="max-width:100%;"> 688 689 ## ⭐️ Layihəni Ulduzlayanlar 690 691 <img src="https://starchart.cc/gofiber/fiber.svg" alt="Stargazers over time" style="max-width: 100%"> 692 693 ## ⚠️ Lisenziya Haqqında 694 695 Müəllif Hüququ (c) 2019-bugün [Fenny](https://github.com/fenny) və [Contributors](https://github.com/gofiber/fiber/graphs/contributors). `Fiber` pulsuz və açıq qaynaqlı bir proqram təminatıdır və [MIT License](https://github.com/gofiber/fiber/blob/master/LICENSE) altında lisenziyalaşmışdır. Rəsmi loqo [Vic Shóstak](https://github.com/koddr) tərəfindən yaradılmış və [Creative Commons](https://creativecommons.org/licenses/by-sa/4.0/) lisenziyası altında paylanmışdır (CC BY-SA 4.0 International). 696 697 **Üçüncü Tərəf Kitabxana Lisenziyaları** 698 699 - [colorable](https://github.com/mattn/go-colorable/blob/master/LICENSE) 700 - [isatty](https://github.com/mattn/go-isatty/blob/master/LICENSE) 701 - [runewidth](https://github.com/mattn/go-runewidth/blob/master/LICENSE) 702 - [fasthttp](https://github.com/valyala/fasthttp/blob/master/LICENSE) 703 - [bytebufferpool](https://github.com/valyala/bytebufferpool/blob/master/LICENSE) 704 - [dictpool](https://github.com/savsgio/dictpool/blob/master/LICENSE) 705 - [fwd](https://github.com/philhofer/fwd/blob/master/LICENSE.md) 706 - [go-ole](https://github.com/go-ole/go-ole/blob/master/LICENSE) 707 - [gopsutil](https://github.com/shirou/gopsutil/blob/master/LICENSE) 708 - [msgp](https://github.com/tinylib/msgp/blob/master/LICENSE) 709 - [schema](https://github.com/gorilla/schema/blob/master/LICENSE) 710 - [uuid](https://github.com/google/uuid/blob/master/LICENSE) 711 - [wmi](https://github.com/StackExchange/wmi/blob/master/LICENSE)