小小千想和您聊一聊

当前位置: 首页> 技术分享> 地址关键词查询功能

地址关键词查询功能

@author:Davie版权所有:北京千锋互联科技有限公司

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

浏览器请求

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

前端浏览器进行关键字检索输入,发送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"`
}


上一篇:HTML5工具初识之网页编辑器

下一篇:删除记录功能

QQ技术交流群

千锋go语言官方①群
816085262

加入群聊