接口获取到的数据也需是多语言

25 篇文章 0 订阅
3 篇文章 0 订阅

多语言需求,调用接口获取到的数据也需是多语言。

比如最开始“所在地”这个字段city,为了做多语言,得添加一个字段city_en

数据库中,有

  • city 深圳
  • city_en shenzhen

前端在axios全局设置里面,加header头。key为lang,value值是cn/en,这个取自sessionStorage

axios.defaults.headers.common['lang'] = sessionStorage.getItem('lang');

后端在返回数据之前判断一下语言类型,如果是cn,那么取city_en返回;如果是en,取city的值返回。

返回json数据的时候,字段名都是city。这样前端就可以维持vue的{item.city} 渲染方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Go 语言的 `goroutine` 和 `channel` 实现多线程爬取分页接口数据。 首先,要定义一个 `struct` 类型来存储每个分页的信息: ```go type Page struct { Number int Data []byte } ``` 然后,要定义一个函数来获取某一页的数据: ```go func getPageData(pageNumber int) ([]byte, error) { // 发送 HTTP 请求并返回响应数据 } ``` 接下来,可以使用 `goroutine` 来并发地获取多个分页的数据。首先,要创建一个 `channel` 来存储分页的信息: ```go pages := make(chan Page) ``` 然后,可以使用 `for` 循环来启动多个 `goroutine`,每个 `goroutine` 获取一个分页的数据,并将其发送到 `pages` `channel` 中: ```go for i := 1; i <= numPages; i++ { go func(pageNumber int) { data, err := getPageData(pageNumber) if err != nil { log.Printf("Error getting page %d: %v\n", pageNumber, err) return } pages <- Page{Number: pageNumber, Data: data} }(i) } ``` 在上面的代码中,`numPages` 表示总共有多少个分页。每个 `goroutine` 获取一个分页的数据,并将其封装成一个 `Page` 结构体,然后将其发送到 `pages` `channel` 中。 最后,可以使用 `for` 循环从 `pages` `channel` 中获取所有分页的数据: ```go var results []Page for i := 1; i <= numPages; i++ { page := <-pages results = append(results, page) } ``` 在上面的代码中,`results` 是一个 `[]Page` 类型的数组,用来存储所有分页的数据。通过 `<-pages` 语句可以从 `pages` `channel` 中获取一个分页的数据,并将其添加到 `results` 数组中。 完整的示例代码如下: ```go package main import ( "log" ) type Page struct { Number int Data []byte } func getPageData(pageNumber int) ([]byte, error) { // 发送 HTTP 请求并返回响应数据 } func main() { numPages := 10 pages := make(chan Page) for i := 1; i <= numPages; i++ { go func(pageNumber int) { data, err := getPageData(pageNumber) if err != nil { log.Printf("Error getting page %d: %v\n", pageNumber, err) return } pages <- Page{Number: pageNumber, Data: data} }(i) } var results []Page for i := 1; i <= numPages; i++ { page := <-pages results = append(results, page) } // 处理结果 } ``` 注意,在实际使用中,可能要对 `getPageData()` 函数进行一些优化,例如使用连接池来复用 HTTP 连接,避免频繁地创建和销毁连接。另外,也要考虑一些错误处理和超时机制,以保证程序的稳定性和健壮性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值