golang实战--实现短地址服务

这篇博客分享了使用Golang实现的一个简易短地址服务的实践过程,目前主要用于学习和练习,还有待完善,包括URL有效性的验证、协议确认以及数据库操作的优化等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

golang写的简单的短地址服务,只做练手用,还有很多不完善的地方

TODO:

验证URL的有效性;

确认URL的协议(http、https)

数据库操作优化

现在的路由太简单了


下面贴上代码

package main

import (
	"database/sql"
	"fmt"
	"net/http"
	"io/ioutil"
	"encoding/json"
	_ "github.com/go-sql-driver/mysql"
)

var elements = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
var db *sql.DB

type returnData struct {
	ShortUrl string
	LongUrl string
}

//这里首字母一定要大写
//json数据与struct字段相匹配时,会查找与json中key相同的可导出字段(首字母大写)
type postData struct {
	LongUrl string
}

func main()  {
	Init()
	http.HandleFunc("/", simpleRoute)
	err := http.ListenAndServe(":9090", nil)
	if err != nil {
		panic(err)
	}
}

func Init()  {
	db, _ = sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/shortener")
	//defer db.Close()
}

//十进制转换成62进制
func base10ToBase62(n int64) string {
	var str string
	for n != 0 {
		str += string(elements[n % 62])
		n /= 62
	}

	for len(str) != 5 {
		str +
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值