<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 接口定義 |URL | 功能 | 意義 | | --- | --- |--- | | /dwz | 測試 | 探活服務 | | /dwz/generate | 原網址生成短網址 | 生成短網址 | | /{:dwz} | 訪問短網址,跳轉原網址 | 服務實現 | ## 實戰代碼 package main import ( "context" "fmt" "math" "net/http" "strconv" "strings" "github.com/gin-gonic/gin" "github.com/go-redis/redis/v8" ) var ctx = context.Background() func main() { router := gin.Default() // 創建一個Gin路由器實例 // 測試接口 router.GET("/dwz", func(c *gin.Context) { // 返回200狀態碼和問候信息 c.JSON(http.StatusOK, gin.H{"code": 0, "msg": "Hello, World", "data": nil}) }) // 原網址生成短網址 router.GET("/dwz/generate", func(c *gin.Context) { url := c.Query("url") if url == "" { c.JSON(http.StatusOK, gin.H{"code": 1, "msg": "url is required", "data": nil}) return } // 生成短網址 dwz, err := originUrl2dwz(url) if err != nil { c.JSON(http.StatusOK, gin.H{"code": 1, "msg": err.Error(), "data": nil}) return } c.JSON(http.StatusOK, gin.H{"code": 0, "msg": "", "data": map[string]string{"dwz": dwz}}) }) // 訪問短網址,跳轉原網址 router.GET("/:dwz", func(c *gin.Context) { // 獲取路由參數 dwz := c.Param("dwz") // v1 數字id // idInt, err := strconv.ParseInt(dwz, 10, 64) // v2 更短的id idInt := conv10(dwz) // 獲取原網址 targetURL, err := dwzID2OriginUrl(idInt) if err != nil { c.JSON(http.StatusOK, gin.H{"code": 0, "msg": err.Error(), "data": nil}) return } c.Redirect(http.StatusMovedPermanently, targetURL) }) // 啟動服務器,默認在0.0.0.0:8080監聽 router.Run(":80") }
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看