github.com/gofiber/fiber/v2@v2.47.0/.github/README_id.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_uk.md"> 64 <img height="20px" src="https://img.shields.io/badge/UK-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDU1LjIgMzguNCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTUuMiAzOC40IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWwoJLnN0MHtmaWxsOiNGRkQ1MDA7fQoJLnN0MXtmaWxsOiMwMDVCQkI7fQpdXT48L3N0eWxlPjxnPjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zLjAzLDBoNDkuMTNjMS42NywwLDMuMDMsMS4zNiwzLjAzLDMuMDN2MzIuMzNjMCwxLjY3LTEuMzcsMy4wMy0zLjAzLDMuMDNIMy4wM0MxLjM3LDM4LjQsMCwzNy4wNCwwLDM1LjM3IFYzLjAzQzAsMS4zNiwxLjM3LDAsMy4wMywwTDMuMDMsMHoiLz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMCwxOS4yaDU1LjJ2MTYuMTdjMCwxLjY3LTEuMzcsMy4wMy0zLjAzLDMuMDNIMy4wM0MxLjM3LDM4LjQsMCwzNy4wNCwwLDM1LjM3VjE5LjJMMCwxOS4yeiIvPjwvZz48L3N2Zz4="> 65 </a> 66 <a href="https://github.com/gofiber/fiber/blob/master/.github/README_az.md"> 67 <img height="20px" src="https://img.shields.io/badge/AZ-flag.svg?color=555555&style=flat-square&logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTIwMCIgaGVpZ2h0PSI2MDAiPg0KPHJlY3Qgd2lkdGg9IjEyMDAiIGhlaWdodD0iNjAwIiBmaWxsPSIjNTA5ZTJmIi8+DQo8cmVjdCB3aWR0aD0iMTIwMCIgaGVpZ2h0PSI0MDAiIGZpbGw9IiNlZjMzNDAiLz4NCjxyZWN0IHdpZHRoPSIxMjAwIiBoZWlnaHQ9IjIwMCIgZmlsbD0iIzAwYjVlMiIvPg0KPGNpcmNsZSBjeD0iNTcwIiBjeT0iMzAwIiByPSI5MCIgZmlsbD0iI2ZmZiIvPg0KPGNpcmNsZSBjeD0iNTkwIiBjeT0iMzAwIiByPSI3NSIgZmlsbD0iI2VmMzM0MCIvPg0KPHBhdGggZD0iTTY3MCAyNTBsOS41NjcgMjYuOTAzIDI1Ljc4OC0xMi4yNTgtMTIuMjU4IDI1Ljc4OEw3MjAgMzAwbC0yNi45MDMgOS41NjcgMTIuMjU4IDI1Ljc4OC0yNS43ODgtMTIuMjU4TDY3MCAzNTBsLTkuNTY3LTI2LjkwMy0yNS43ODggMTIuMjU4IDEyLjI1OC0yNS43ODhMNjIwIDMwMGwyNi45MDMtOS41NjctMTIuMjU4LTI1Ljc4OCAyNS43ODggMTIuMjU4eiIgZmlsbD0iI2ZmZiIvPg0KPC9zdmc+"> 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 </p> 92 <p align="center"> 93 <b>Fiber</b> adalah <b>kerangka kerja web</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://go.dev/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. 94 </p> 95 96 ## β‘οΈ Cara Memulai 97 98 ```go 99 package main 100 101 import "github.com/gofiber/fiber/v2" 102 103 func main() { 104 app := fiber.New() 105 106 app.Get("/", func(c *fiber.Ctx) error { 107 return c.SendString("Hello, World π!") 108 }) 109 110 app.Listen(":3000") 111 } 112 ``` 113 114 ## π€ Pengukuran Kinerja 115 116 Pengukuran ini dilakukan oleh [TechEmpower](https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=plaintext) 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/extra/benchmarks) kami. 117 118 <p float="left" align="middle"> 119 <img src="https://raw.githubusercontent.com/gofiber/docs/master/static/img/benchmark-pipeline.png" width="49%"> 120 <img src="https://raw.githubusercontent.com/gofiber/docs/master/static/img/benchmark_alloc.png" width="49%"> 121 </p> 122 123 ## βοΈ Instalasi 124 125 Pastikan kamu sudah menginstalasi Golang ([unduh](https://go.dev/dl/)). Dengan versi `1.17` atau lebih tinggi [ Direkomendasikan ]. 126 127 Inisialisasi proyek kamu dengan membuat folder lalu jalankan `go mod init github.com/nama-kamu/repo` ([belajar lebih banyak](https://go.dev/blog/using-go-modules)) di dalam folder. Kemudian instal Fiber dengan perintah [`go get`](https://pkg.go.dev/cmd/go/#hdr-Add_dependencies_to_current_module_and_install_them): 128 129 ```bash 130 go get -u github.com/gofiber/fiber/v2 131 ``` 132 133 ## π― Fitur 134 135 - Sistem [Routing](https://docs.gofiber.io/guide/routing) yang padu 136 - Menyajikan [file statis](https://docs.gofiber.io/api/app#static) 137 - [Kinerja](https://docs.gofiber.io/extra/benchmarks) ekstrim 138 - [Penggunaan memori](https://docs.gofiber.io/extra/benchmarks) yang kecil 139 - Cocok untuk [API](https://docs.gofiber.io/api/ctx) 140 - Mendukung Middleware & [Next](https://docs.gofiber.io/api/ctx#next) seperti Express 141 - Kembangkan aplikasi dengan [Cepat](https://dev.to/koddr/welcome-to-fiber-an-express-js-styled-fastest-web-framework-written-with-on-golang-497) 142 - [Template engines](https://github.com/gofiber/template) 143 - [Mendukung WebSocket](https://github.com/gofiber/websocket) 144 - [Server-Sent events](https://github.com/gofiber/recipes/tree/master/sse) 145 - [Rate Limiter](https://docs.gofiber.io/api/middleware/limiter) 146 - Tersedia dalam [18 bahasa](https://docs.gofiber.io/) 147 - Dan masih banyak lagi, [kunjungi Fiber](https://docs.gofiber.io/) 148 149 ## π‘ Filosofi 150 151 Bagi yang baru yang beralih dari [Node.js](https://nodejs.org/en/about/) ke [Go](https://go.dev/doc/) terkadang perlu waktu yang cukup lama sebelum mereka mampu membuat aplikasi web dengan Go. Fiber, sebagai **kerangka kerja web** dirancang secara **minimalis** dan mengikuti filosofi dari **UNIX**, sehingga pengguna baru dapat dengan cepat memasuki dunia Go dengan sambutan yang hangat dan dapat diandalkan. 152 153 Fiber terinspirasi dari Express, salah satu kerangka kerja web yang 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. 154 155 Kami **mendengarkan** para pengguna di [GitHub Issues](https://github.com/gofiber/fiber/issues), Discord [channel](https://gofiber.io/discord), _dan berbagai platform lainnya_ untuk menciptakan kerangka kerja web yang **cepat**, **fleksibel** dan **bersahabat** untuk berbagai macam keperluan, **tenggat waktu** dan **keahlian** para pengguna! Sama halnya seperti yang dilakukan Express di dunia JavaScript. 156 157 ## β οΈ Limitasi 158 159 * Karena penggunaan Fiber yang tidak aman, perpustakaan mungkin tidak selalu kompatibel dengan versi Go terbaru. Fiber 2.40.0 telah diuji dengan Go versi 1.17 hingga 1.20. 160 * Fiber tidak kompatibel dengan antarmuka net/http. Ini berarti kamu tidak akan dapat menggunakan proyek seperti gqlgen, go-swagger, atau lainnya yang merupakan bagian dari ekosistem net/http. 161 162 ## π Contoh 163 164 Dibawah ini terdapat beberapa contoh penggunaan. Jika anda ingin melihat contoh lainnya, silahkan kunjungi [Gudang resep](https://github.com/gofiber/recipes) atau kunjungi [Dokumentasi API](https://docs.gofiber.io) kami. 165 166 #### π [**Routing Dasar**](https://docs.gofiber.io/#basic-routing) 167 168 ```go 169 func main() { 170 app := fiber.New() 171 172 // GET /api/register 173 app.Get("/api/*", func(c *fiber.Ctx) error { 174 msg := fmt.Sprintf("β %s", c.Params("*")) 175 return c.SendString(msg) // => β register 176 }) 177 178 // GET /flights/LAX-SFO 179 app.Get("/flights/:from-:to", func(c *fiber.Ctx) error { 180 msg := fmt.Sprintf("πΈ From: %s, To: %s", c.Params("from"), c.Params("to")) 181 return c.SendString(msg) // => πΈ From: LAX, To: SFO 182 }) 183 184 // GET /dictionary.txt 185 app.Get("/:file.:ext", func(c *fiber.Ctx) error { 186 msg := fmt.Sprintf("π %s.%s", c.Params("file"), c.Params("ext")) 187 return c.SendString(msg) // => π dictionary.txt 188 }) 189 190 // GET /john/75 191 app.Get("/:name/:age/:gender?", func(c *fiber.Ctx) error { 192 msg := fmt.Sprintf("π΄ %s is %s years old", c.Params("name"), c.Params("age")) 193 return c.SendString(msg) // => π΄ john is 75 years old 194 }) 195 196 // GET /john 197 app.Get("/:name", func(c *fiber.Ctx) error { 198 msg := fmt.Sprintf("Hello, %s π!", c.Params("name")) 199 return c.SendString(msg) // => Hello john π! 200 }) 201 202 log.Fatal(app.Listen(":3000")) 203 } 204 205 ``` 206 207 #### π [**Penamaan Route**](https://docs.gofiber.io/api/app#name) 208 209 ```go 210 func main() { 211 app := fiber.New() 212 213 // GET /api/register 214 app.Get("/api/*", func(c *fiber.Ctx) error { 215 msg := fmt.Sprintf("β %s", c.Params("*")) 216 return c.SendString(msg) // => β register 217 }).Name("api") 218 219 data, _ := json.MarshalIndent(app.GetRoute("api"), "", " ") 220 fmt.Print(string(data)) 221 // Prints: 222 // { 223 // "method": "GET", 224 // "name": "api", 225 // "path": "/api/*", 226 // "params": [ 227 // "*1" 228 // ] 229 // } 230 231 232 log.Fatal(app.Listen(":3000")) 233 } 234 235 ``` 236 237 #### π [**Menyajikan File Statis**](https://docs.gofiber.io/api/app#static) 238 239 ```go 240 func main() { 241 app := fiber.New() 242 243 app.Static("/", "./public") 244 // => http://localhost:3000/js/script.js 245 // => http://localhost:3000/css/style.css 246 247 app.Static("/prefix", "./public") 248 // => http://localhost:3000/prefix/js/script.js 249 // => http://localhost:3000/prefix/css/style.css 250 251 app.Static("*", "./public/index.html") 252 // => http://localhost:3000/any/path/shows/index/html 253 254 log.Fatal(app.Listen(":3000")) 255 } 256 257 ``` 258 259 #### π [**Middleware & Next**](https://docs.gofiber.io/api/ctx#next) 260 261 ```go 262 func main() { 263 app := fiber.New() 264 265 // Match any route 266 app.Use(func(c *fiber.Ctx) error { 267 fmt.Println("π₯ First handler") 268 return c.Next() 269 }) 270 271 // Match all routes starting with /api 272 app.Use("/api", func(c *fiber.Ctx) error { 273 fmt.Println("π₯ Second handler") 274 return c.Next() 275 }) 276 277 // GET /api/register 278 app.Get("/api/list", func(c *fiber.Ctx) error { 279 fmt.Println("π₯ Last handler") 280 return c.SendString("Hello, World π!") 281 }) 282 283 log.Fatal(app.Listen(":3000")) 284 } 285 286 ``` 287 288 <details> 289 <summary>π Tampilkan lebih banyak contoh kode</summary> 290 291 ### Views engines 292 293 π [Config](https://docs.gofiber.io/api/fiber#config) 294 π [Engines](https://github.com/gofiber/template) 295 π [Render](https://docs.gofiber.io/api/ctx#render) 296 297 Fiber mengalihkan ke [html/template](https://pkg.go.dev/html/template/) saat tidak ada mesin tampilan yang disetel. 298 299 Jika kamu ingin menjalankan sebagian atau menggunakan mesin yang berbeda seperti [amber](https://github.com/eknkc/amber), [handlebars](https://github.com/aymerick/raymond), [mustache](https://github.com/cbroglie/mustache) atau [pug](https://github.com/Joker/jade) dan lain-lain.. 300 301 Lihat paket [contoh](https://github.com/gofiber/template) kami yang mendukung beberapa mesin tampilan. 302 303 ```go 304 package main 305 306 import ( 307 "github.com/gofiber/fiber/v2" 308 "github.com/gofiber/template/pug" 309 ) 310 311 func main() { 312 // You can setup Views engine before initiation app: 313 app := fiber.New(fiber.Config{ 314 Views: pug.New("./views", ".pug"), 315 }) 316 317 // And now, you can call template `./views/home.pug` like this: 318 app.Get("/", func(c *fiber.Ctx) error { 319 return c.Render("home", fiber.Map{ 320 "title": "Homepage", 321 "year": 1999, 322 }) 323 }) 324 325 log.Fatal(app.Listen(":3000")) 326 } 327 ``` 328 329 ### Grouping routes into chains 330 331 π [Group](https://docs.gofiber.io/api/app#group) 332 333 ```go 334 func middleware(c *fiber.Ctx) error { 335 fmt.Println("Don't mind me!") 336 return c.Next() 337 } 338 339 func handler(c *fiber.Ctx) error { 340 return c.SendString(c.Path()) 341 } 342 343 func main() { 344 app := fiber.New() 345 346 // Root API route 347 api := app.Group("/api", middleware) // /api 348 349 // API v1 routes 350 v1 := api.Group("/v1", middleware) // /api/v1 351 v1.Get("/list", handler) // /api/v1/list 352 v1.Get("/user", handler) // /api/v1/user 353 354 // API v2 routes 355 v2 := api.Group("/v2", middleware) // /api/v2 356 v2.Get("/list", handler) // /api/v2/list 357 v2.Get("/user", handler) // /api/v2/user 358 359 // ... 360 } 361 362 ``` 363 364 ### Middleware logger 365 366 π [Logger](https://docs.gofiber.io/api/middleware/logger) 367 368 ```go 369 package main 370 371 import ( 372 "log" 373 374 "github.com/gofiber/fiber/v2" 375 "github.com/gofiber/fiber/v2/middleware/logger" 376 ) 377 378 func main() { 379 app := fiber.New() 380 381 app.Use(logger.New()) 382 383 // ... 384 385 log.Fatal(app.Listen(":3000")) 386 } 387 ``` 388 389 ### Cross-Origin Resource Sharing (CORS) 390 391 π [CORS](https://docs.gofiber.io/api/middleware/cors) 392 393 ```go 394 import ( 395 "log" 396 397 "github.com/gofiber/fiber/v2" 398 "github.com/gofiber/fiber/v2/middleware/cors" 399 ) 400 401 func main() { 402 app := fiber.New() 403 404 app.Use(cors.New()) 405 406 // ... 407 408 log.Fatal(app.Listen(":3000")) 409 } 410 ``` 411 412 Periksa CORS dengan meneruskan domain apa pun di `Origin` header: 413 414 ```bash 415 curl -H "Origin: http://example.com" --verbose http://localhost:3000 416 ``` 417 418 ### Custom 404 response 419 420 π [HTTP Methods](https://docs.gofiber.io/api/ctx#status) 421 422 ```go 423 func main() { 424 app := fiber.New() 425 426 app.Static("/", "./public") 427 428 app.Get("/demo", func(c *fiber.Ctx) error { 429 return c.SendString("This is a demo!") 430 }) 431 432 app.Post("/register", func(c *fiber.Ctx) error { 433 return c.SendString("Welcome!") 434 }) 435 436 // Last middleware to match anything 437 app.Use(func(c *fiber.Ctx) error { 438 return c.SendStatus(404) 439 // => 404 "Not Found" 440 }) 441 442 log.Fatal(app.Listen(":3000")) 443 } 444 ``` 445 446 ### JSON Response 447 448 π [JSON](https://docs.gofiber.io/api/ctx#json) 449 450 ```go 451 type User struct { 452 Name string `json:"name"` 453 Age int `json:"age"` 454 } 455 456 func main() { 457 app := fiber.New() 458 459 app.Get("/user", func(c *fiber.Ctx) error { 460 return c.JSON(&User{"John", 20}) 461 // => {"name":"John", "age":20} 462 }) 463 464 app.Get("/json", func(c *fiber.Ctx) error { 465 return c.JSON(fiber.Map{ 466 "success": true, 467 "message": "Hi John!", 468 }) 469 // => {"success":true, "message":"Hi John!"} 470 }) 471 472 log.Fatal(app.Listen(":3000")) 473 } 474 ``` 475 476 ### WebSocket Upgrade 477 478 π [Websocket](https://github.com/gofiber/websocket) 479 480 ```go 481 import ( 482 "github.com/gofiber/fiber/v2" 483 "github.com/gofiber/fiber/v2/middleware/websocket" 484 ) 485 486 func main() { 487 app := fiber.New() 488 489 app.Get("/ws", websocket.New(func(c *websocket.Conn) { 490 for { 491 mt, msg, err := c.ReadMessage() 492 if err != nil { 493 log.Println("read:", err) 494 break 495 } 496 log.Printf("recv: %s", msg) 497 err = c.WriteMessage(mt, msg) 498 if err != nil { 499 log.Println("write:", err) 500 break 501 } 502 } 503 })) 504 505 log.Fatal(app.Listen(":3000")) 506 // ws://localhost:3000/ws 507 } 508 ``` 509 510 ### Server-Sent Events 511 512 π [Informasi lebih lanjut](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events) 513 514 ```go 515 import ( 516 "github.com/gofiber/fiber/v2" 517 "github.com/valyala/fasthttp" 518 ) 519 520 func main() { 521 app := fiber.New() 522 523 app.Get("/sse", func(c *fiber.Ctx) error { 524 c.Set("Content-Type", "text/event-stream") 525 c.Set("Cache-Control", "no-cache") 526 c.Set("Connection", "keep-alive") 527 c.Set("Transfer-Encoding", "chunked") 528 529 c.Context().SetBodyStreamWriter(fasthttp.StreamWriter(func(w *bufio.Writer) { 530 fmt.Println("WRITER") 531 var i int 532 533 for { 534 i++ 535 msg := fmt.Sprintf("%d - the time is %v", i, time.Now()) 536 fmt.Fprintf(w, "data: Message: %s\n\n", msg) 537 fmt.Println(msg) 538 539 w.Flush() 540 time.Sleep(5 * time.Second) 541 } 542 })) 543 544 return nil 545 }) 546 547 log.Fatal(app.Listen(":3000")) 548 } 549 ``` 550 551 ### Recover middleware 552 553 π [Recover](https://docs.gofiber.io/api/middleware/recover) 554 555 ```go 556 import ( 557 "github.com/gofiber/fiber/v2" 558 "github.com/gofiber/fiber/v2/middleware/recover" 559 ) 560 561 func main() { 562 app := fiber.New() 563 564 app.Use(recover.New()) 565 566 app.Get("/", func(c *fiber.Ctx) error { 567 panic("normally this would crash your app") 568 }) 569 570 log.Fatal(app.Listen(":3000")) 571 } 572 ``` 573 574 </details> 575 576 ## 𧬠Middleware Internal 577 578 Kumpulan `middleware` yang ada didalam kerangka kerja Fiber. 579 580 | Middleware | Description | 581 | :------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 582 | [basicauth](https://github.com/gofiber/fiber/tree/master/middleware/basicauth) | Basic auth middleware provides an HTTP basic authentication. It calls the next handler for valid credentials and 401 Unauthorized for missing or invalid credentials. | 583 | [cache](https://github.com/gofiber/fiber/tree/master/middleware/cache) | Intercept and cache responses | 584 | [compress](https://github.com/gofiber/fiber/tree/master/middleware/compress) | Compression middleware for Fiber, it supports `deflate`, `gzip` and `brotli` by default. | 585 | [cors](https://github.com/gofiber/fiber/tree/master/middleware/cors) | Enable cross-origin resource sharing \(CORS\) with various options. | 586 | [csrf](https://github.com/gofiber/fiber/tree/master/middleware/csrf) | Protect from CSRF exploits. | 587 | [encryptcookie](https://github.com/gofiber/fiber/tree/master/middleware/encryptcookie) | Encrypt middleware which encrypts cookie values. | 588 | [envvar](https://github.com/gofiber/fiber/tree/master/middleware/envvar) | Expose environment variables with providing an optional config. | 589 | [etag](https://github.com/gofiber/fiber/tree/master/middleware/etag) | ETag middleware that lets caches be more efficient and save bandwidth, as a web server does not need to resend a full response if the content has not changed. | 590 | [expvar](https://github.com/gofiber/fiber/tree/master/middleware/expvar) | Expvar middleware that serves via its HTTP server runtime exposed variants in the JSON format. | 591 | [favicon](https://github.com/gofiber/fiber/tree/master/middleware/favicon) | Ignore favicon from logs or serve from memory if a file path is provided. | 592 | [filesystem](https://github.com/gofiber/fiber/tree/master/middleware/filesystem) | FileSystem middleware for Fiber, special thanks and credits to Alireza Salary | 593 | [limiter](https://github.com/gofiber/fiber/tree/master/middleware/limiter) | Rate-limiting middleware for Fiber. Use to limit repeated requests to public APIs and/or endpoints such as password reset. | 594 | [logger](https://github.com/gofiber/fiber/tree/master/middleware/logger) | HTTP request/response logger. | 595 | [monitor](https://github.com/gofiber/fiber/tree/master/middleware/monitor) | Monitor middleware that reports server metrics, inspired by express-status-monitor | 596 | [pprof](https://github.com/gofiber/fiber/tree/master/middleware/pprof) | Special thanks to Matthew Lee \(@mthli\) | 597 | [proxy](https://github.com/gofiber/fiber/tree/master/middleware/proxy) | Allows you to proxy requests to a multiple servers | 598 | [recover](https://github.com/gofiber/fiber/tree/master/middleware/recover) | Recover middleware recovers from panics anywhere in the stack chain and handles the control to the centralized[ ErrorHandler](https://docs.gofiber.io/guide/error-handling). | 599 | [requestid](https://github.com/gofiber/fiber/tree/master/middleware/requestid) | Adds a requestid to every request. | 600 | [session](https://github.com/gofiber/fiber/tree/master/middleware/session) | Session middleware. NOTE: This middleware uses our Storage package. | 601 | [skip](https://github.com/gofiber/fiber/tree/master/middleware/skip) | Skip middleware that skips a wrapped handler is a predicate is true. | 602 | [timeout](https://github.com/gofiber/fiber/tree/master/middleware/timeout) | Adds a max time for a request and forwards to ErrorHandler if it is exceeded. | 603 | [keyauth](https://github.com/gofiber/keyauth) | Key auth middleware provides a key based authentication. | 604 | [redirect](https://github.com/gofiber/redirect) | Redirect middleware | 605 | [rewrite](https://github.com/gofiber/rewrite) | Rewrite middleware rewrites the URL path based on provided rules. It can be helpful for backward compatibility or just creating cleaner and more descriptive links. | 606 | [adaptor](https://github.com/gofiber/adaptor) | Converter for net/http handlers to/from Fiber request handlers, special thanks to @arsmn! | 607 | [helmet](https://github.com/gofiber/helmet) | Helps secure your apps by setting various HTTP headers. | 608 609 ## 𧬠Middleware External 610 611 Kumpulan `middleware` yang dihost external dan diurus oleh [Tim Fiber](https://github.com/orgs/gofiber/people). 612 613 | Middleware | Description | 614 | :------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 615 | [jwt](https://github.com/gofiber/jwt) | JWT returns a JSON Web Token \(JWT\) auth middleware. | 616 | [storage](https://github.com/gofiber/storage) | Premade storage drivers that implement the Storage interface, designed to be used with various Fiber middlewares. | 617 | [template](https://github.com/gofiber/template) | This package contains 8 template engines that can be used with Fiber `v1.10.x` Go version 1.13 or higher is required. | 618 | [websocket](https://github.com/gofiber/websocket) | Based on Fasthttp WebSocket for Fiber with Locals support! | 619 620 ## πΆοΈ Awesome List 621 622 Untuk artikel lainnya, middlewares, contoh atau tools check kami [awesome list](https://github.com/gofiber/awesome-fiber). 623 624 ## π Berkontribusi 625 626 Apabila anda ingin mengucapkan **terima kasih** dan/atau mendukung pengembangan `Fiber`: 627 628 1. Berikan bintang atau [GitHub Star](https://github.com/gofiber/fiber/stargazers) ke proyek ini. 629 2. Bagikan [di Twitter anda](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). 630 3. Buat ulasan atau tutorial di [Medium](https://medium.com/), [Dev.to](https://dev.to/) atau blog pribadi anda. 631 4. Dukung proyek ini dengan membelikan [secangkir kopi](https://buymeacoff.ee/fenny). 632 633 ## β Pendukung 634 635 Fiber adalah proyek sumber terbuka yang beroperasi dalam donasi untuk membayar tagihan, seperti nama domain, _gitbook, netlify_ dan _serverless hosting_. Jika anda mau mendukung Fiber, anda dapat [**membelikan kami kopi disini**](https://buymeacoff.ee/fenny). 636 637 | | User | Donation | 638 | :--------------------------------------------------------- | :----------------------------------------------- | :------- | 639 |  | [@destari](https://github.com/destari) | β x 10 | 640 |  | [@dembygenesis](https://github.com/dembygenesis) | β x 5 | 641 |  | [@thomasvvugt](https://github.com/thomasvvugt) | β x 5 | 642 |  | [@hendratommy](https://github.com/hendratommy) | β x 5 | 643 |  | [@ekaputra07](https://github.com/ekaputra07) | β x 5 | 644 |  | [@jorgefuertes](https://github.com/jorgefuertes) | β x 5 | 645 |  | [@candidosales](https://github.com/candidosales) | β x 5 | 646 |  | [@l0nax](https://github.com/l0nax) | β x 3 | 647 |  | [@bihe](https://github.com/bihe) | β x 3 | 648 |  | [@justdave](https://github.com/justdave) | β x 3 | 649 |  | [@koddr](https://github.com/koddr) | β x 1 | 650 |  | [@lapolinar](https://github.com/lapolinar) | β x 1 | 651 |  | [@diegowifi](https://github.com/diegowifi) | β x 1 | 652 |  | [@ssimk0](https://github.com/ssimk0) | β x 1 | 653 |  | [@raymayemir](https://github.com/raymayemir) | β x 1 | 654 |  | [@melkorm](https://github.com/melkorm) | β x 1 | 655 |  | [@marvinjwendt](https://github.com/thomasvvugt) | β x 1 | 656 |  | [@toishy](https://github.com/toishy) | β x 1 | 657 658 ## ββπ» Kontributor Kode 659 660 <img src="https://opencollective.com/fiber/contributors.svg?width=890&button=false" alt="Code Contributors" style="max-width:100%;"> 661 662 ## βοΈ Pengamat bintang 663 664 <img src="https://starchart.cc/gofiber/fiber.svg" alt="Stargazers over time" style="max-width: 100%"> 665 666 ## β οΈ Lisensi 667 668 Copyright (c) 2019-present [Fenny](https://github.com/fenny) and [Contributors](https://github.com/gofiber/fiber/graphs/contributors). `Fiber` adalah proyek gratis dan open-source dibawah [lisensi MIT](https://github.com/gofiber/fiber/blob/master/LICENSE). Logo resmi diciptakan oleh [Vic ShΓ³stak](https://github.com/koddr) dan didistribusikan dalam lisensi [Creative Commons](https://creativecommons.org/licenses/by-sa/4.0/) (CC BY-SA 4.0 International). 669 670 **Lisensi perpustakaan pihak-ketiga** 671 672 - [colorable](https://github.com/mattn/go-colorable/blob/master/LICENSE) 673 - [isatty](https://github.com/mattn/go-isatty/blob/master/LICENSE) 674 - [runewidth](https://github.com/mattn/go-runewidth/blob/master/LICENSE) 675 - [fasthttp](https://github.com/valyala/fasthttp/blob/master/LICENSE) 676 - [bytebufferpool](https://github.com/valyala/bytebufferpool/blob/master/LICENSE) 677 - [dictpool](https://github.com/savsgio/dictpool/blob/master/LICENSE) 678 - [fwd](https://github.com/philhofer/fwd/blob/master/LICENSE.md) 679 - [go-ole](https://github.com/go-ole/go-ole/blob/master/LICENSE) 680 - [gopsutil](https://github.com/shirou/gopsutil/blob/master/LICENSE) 681 - [msgp](https://github.com/tinylib/msgp/blob/master/LICENSE) 682 - [schema](https://github.com/gorilla/schema/blob/master/LICENSE) 683 - [uuid](https://github.com/google/uuid/blob/master/LICENSE) 684 - [wmi](https://github.com/StackExchange/wmi/blob/master/LICENSE) 685