2021-07-22学习笔记总结(grpc和client接口调用)

grpc接口调用
 

func (d *Dao) DynamicSearch(ctx context.Context, mid, vmid int64, keyword string, pn int, ps int) (dynamicIDs []int64, total int32, err error) {
   start := int32((pn - 1) * ps)
   req := &dynamicsearchgrpc.PersonalSearchReq{
      Keywords: keyword,
      Start:    start,
      Limit:    int32(ps),
      Mid:      mid,
      UpId:     vmid,
   }
   reply, err := d.dynamicSearchClient.PersonalSearch(ctx, req)
   if err != nil {
      return nil, 0, err
   }
   var ids []int64
   for _, v := range reply.GetDynamics() {
      ids = append(ids, v.DynamicId)
   }
   return ids, reply.GetTotal(), nil
}

dynamicSearchClient dynamicSearchgrpc.DynamicSearchServiceClient 注意初始化NewClient()防止空指针

http接口调用(透传)

发送请求调用http接口,不关心透传对象内容,只需返回结果。

注意配置中心配置
func (d *Dao) DynamicDetail(ctx context.Context, mid int64, dynamicIDs []int64) (json.RawMessage, error) {
   params := url.Values{}
   params.Set("uid", strconv.FormatInt(mid, 10))
   for _, id := range dynamicIDs {
      params.Add("dynamic_ids[]", strconv.FormatInt(id, 10))
   }
   var res struct {
      Code int `json:"code"`
      Data struct {
         Cards json.RawMessage `json:"cards"`
      } `json:"data"`
   }
   if err := d.httpDynamic.Get(ctx, d.dynamicInfoURL, "", params, &res); err != nil {
      return nil, err
   }
   if res.Code != ecode.OK.Code() {
      return nil, errors.Wrap(ecode.Int(res.Code), d.dynamicInfoURL+"?"+params.Encode())
   }
   return res.Data.Cards, nil
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值