diff --git a/doc/shorturl.md b/doc/shorturl.md index a2dab0f1..caa5c53c 100644 --- a/doc/shorturl.md +++ b/doc/shorturl.md @@ -305,6 +305,26 @@ } ``` +* 修改`internal/svc/servicecontext.go`,如下: + + ```go + type ServiceContext struct { + Config config.Config + Shortener rpcx.Client // 手动代码 + Expander rpcx.Client // 手动代码 + } + + func NewServiceContext(config config.Config) *ServiceContext { + return &ServiceContext{ + Config: config, + Shortener: rpcx.MustNewClient(config.Shortener), // 手动代码 + Expander: rpcx.MustNewClient(config.Expander), // 手动代码 + } + } + ``` + + 通过ServiceContext在不同业务逻辑之间传递依赖 + * 修改`internal/logic/expandlogic.go`,如下: ```go @@ -375,32 +395,12 @@ 增加了对`shortener`服务的依赖,并通过调用`shortener`的`Shorten`方法实现url到短链的变换 -* 修改`internal/svc/servicecontext.go`,如下: - - ```go - type ServiceContext struct { - Config config.Config - Shortener rpcx.Client // 手动代码 - Expander rpcx.Client // 手动代码 - } - - func NewServiceContext(config config.Config) *ServiceContext { - return &ServiceContext{ - Config: config, - Shortener: rpcx.MustNewClient(config.Shortener), // 手动代码 - Expander: rpcx.MustNewClient(config.Expander), // 手动代码 - } - } - ``` - - 通过ServiceContext在不同业务逻辑之间传递依赖 - 至此,API Gateway修改完成,虽然贴的代码多,但是期中修改的是很少的一部分,为了方便理解上下文,我贴了完整代码,接下来处理CRUD+cache ## 7. 定义数据库表结构,并生成CRUD+cache代码 * shorturl下创建rpc/model目录:`mkdir -p rpc/model` -* 在roc/model目录下编写创建shorturl表的sql文件`shorturl.sql`,如下: +* 在rpc/model目录下编写创建shorturl表的sql文件`shorturl.sql`,如下: ```sql CREATE TABLE `shorturl` @@ -595,7 +595,7 @@ * shorten api调用 ```shell - ~ curl -i "http://localhost:8888/shorten?url=http://www.xiaoheiban.cn" + curl -i "http://localhost:8888/shorten?url=http://www.xiaoheiban.cn" ``` 返回如下: