# shorturl **Repository Path**: ling66611/shorturl ## Basic Information - **Project Name**: shorturl - **Description**: go-zero-shorturl - **Primary Language**: Go - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-21 - **Last Updated**: 2022-07-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # shorturl #### 介绍 go-zero-shorturl, 环境准备需要mysql,redis,etcd都跑在服务器上 ## docker运行mysql,redis,etcd 需要新建三个目录 ```bash mkdir mysqlData | mkdir redisData | mkdir etcdData ``` ### mysql ```bash 镜像名:mysql:latest docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest ``` ### redis ```bash 镜像名:redis:latest docker run -p 6379:6379 --name redis -v /redisData/:/redisData -d redis:latest redis-server ``` ### etcd http://t.zoukankan.com/zjdxr-up-p-15409176.html ```bash 镜像名:bitnami/etcd:latest # 写到一行 docker run -d --name etcd-server --network app-tier --publish 2379:2379 --publish 2380:2380 --env ALLOW_NONE_AUTHENTICATION=yes --env ETCD_ADVERTISE_CLIENT_URLS=http://ling11.top:2379 bitnami/etcd:latest docker run -it --rm --network app-tier --env ALLOW_NONE_AUTHENTICATION=yes bitnami/etcd:latest etcdctl --endpoints http://ling11.top:2379 set /message Hello ``` ## 7. 完整的调用 先启动, 注意启动顺序,先启动`transform.rpc`再启动`API Gateway` ```shell go run transform.go -f etc/transform.yaml go run shorturl.go -f etc/shorturl-api.yaml ``` 测试调用: ```shell # curl -i "http://localhost:8888/shorten?url=http://www.xiaoheiban.cn" HTTP/1.1 200 OK Content-Type: application/json X-Trace-Id: b0e50284f8ea8baf3800c0c1f90457c4 Date: Mon, 17 Jan 2022 09:19:46 GMT Content-Length: 20 {"shorten":"f35b2a"} 12345678 # curl -i "http://localhost:8888/expand?shorten=f35b2a" HTTP/1.1 200 OK Content-Type: application/json X-Trace-Id: 524f6bdd04e6e11191130fe9d7a17dfa Date: Mon, 17 Jan 2022 12:21:07 GMT Content-Length: 34 {"url":"http://www.xiaoheiban.cn"} ```