Goweb开发之Iris框架实战:地址关键词查询功能

上节内容我们学习了添加食品记录内容,今天我来看一下如何调用第三方的接口功能。

浏览器请求

本项目案例中的获取店铺列表功能,以及添加商户记录,需要填写店铺地址。在输入店铺地址时,我们需要实时的检测用户关键词输入,并进行搜索返回对应地点的经纬度。因此,我们有必要提供地址检索的功能。

前端浏览器进行关键字检索输入,发送HTTP请求到服务端。在本项目案例中,前端浏览器请求信息为:

  • URL:/v1/pois?address="北京市朝阳区xxx"
  • Type:GET
  • Desc:该请求接口用来实现对地址的检索查询

对接使用第三方API功能

在本项目中,我们使用第三方的公开API来进行关键词地址的检索,并返回具体的地址和经纬度信息。

本案例中使用的第三方的检索API的url为:https://elm.cangdu.org

请求API操作

使用http包的GET请求方式对地址关键词检索功能进行请求,获取相应的数据,编程实现如下:

app.Get("/v1/pois?{poi}", func(context context.Context) {
        path := context.Request().URL.String()
        rs, err := http.Get("https://elm.cangdu.org" + path)
        if err != nil {
            context.JSON(iris.Map{
                "status":  utils.RECODE_FAIL,
                "type":    utils.RESPMSG_ERROR_SEARCHADDRESS,
                "message": utils.Recode2Text(utils.RESPMSG_ERROR_SEARCHADDRESS),
            })
            return
        }
​
        //请求成功
        body, err := ioutil.ReadAll(rs.Body)
        var searchList []*model.PoiSearch
        json.Unmarshal(body, &searchList)
        context.JSON(&searchList)
    })

PoiSearch结构体

对于检索实体,我们通过定义PoiSearch结构体来进行实现:

type PoiSearch struct {
    Name      string  `json:"name"`
    Address   string  `json:"address"`
    Latitude  float32 `json:"latitude"`
    Longitude float32 `json:"longitude"`
    Geohash   string  `json:"geohash"`
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值