app 版本控制和 静态资源版本号方案

api 版本控制:

5套环境:开发,测试,提审(预发布),正式,配置接口独立环境(capp.app.com) 【正式和提审分版本】

config接口->访问oss配置文件->nginx-》指定版本目录

配置接口独立环境 连接的是正式服 的数据库

数据库:

1.info 表 存储了 配置文件oss 路径 assetsIosEnvironmentUrl=https://test.app.com/env/ios/

2.新增一个版本控制表

作用:

1)是否强制更新,更新内容

2)切换提审环境

3)api_version 对应不同版本API

4)build_version 产品版本号

OSS:

1.存放配置文件,每个版本有一个正式 和提审 的配置文件

提审环境配置文件组成:ver-api版本号-产品版本号-pre.json

正式环境配置文件组成:ver-api版本号-产品版本号.json

带version的API域名根式:"https://app.com/api/ver_1(api版本号)/"

Nginx:

正式和提审环境 根据api-version 映射 不同版本接口 路径

环境配置代码逻辑:

1.测试和开发 直接域名 访问

2.正式和提审环境访问:

        1)首先访问 http://capp.app.com/api/获取配置信息接口 (返回当前版本的接口地址,静态资源地址)根据api_version 和 build_version 访问对应配置文件

        2)根据 build-version ,查询对应版本控制表的 is_bring 字段 判断是否切换提审环境,如是提审环境访问 ver-5-20200929-pre.json,正式 ver-5-20200929.json

        3)找到对应json,返回API域名,静态资源数据

{
	"success": true,
	"statusCode": 200,
	"result": {
		"assets": "https://test.app.com/",
		"api": "https://tapp.app.com/api_an/",
		"assets_article_cover": "https://test.app.com/resources/article/cover/",
		"assets_article_editor": "https://test.app.com/resources/article/editor/",
		"assets_article_video": "https://test.app.com/resources/article/video/",
		"assets_article_audio": "https://test.app.com/resources/article/audio/",
		"assets_article_info": "https://test.app.com/resources/article/info/",
		"assets_article_video_cover": "https://test.app.com/resources/article/video_cover/",
		"assets_tag_scope": "https://test.app.com/resources/tag/scope/",
		"assets_user_cover": "https://test.app.com/resources/user/cover/",
		"assets_user_area_json": "https://test.app.com/resources/user/area.json",
		"assets_user_education_json": "https://test.app.com/resources/user/education.json",
		"assets_user_industry_json": "https://test.app.com/resources/user/industry.json",
		"assets_user_job_json": "https://test.app.com/resources/user/job.json",
		"assets_agreement": "https://test.app.com/resources/agreement/",
		"assets_banner": "https://test.app.com/resources/banner/",
		"assets_article_backups_word": "https://test.app.com/resources/article/backups/word/",
		"assets_article_backups_pdf": "https://test.app.com/resources/article/backups/pdf/",
		"is_updating": false,
		"server_time": 1601371006
	},
	"message": "OK"
}

版本更新代码逻辑:

        1)前端先调用 http://capp.app.com/api/获取配置信息接口,根据 返回字段 is_updating【true,有更新;false 无更新】判断

        2)有更新,前端调用版本控制接口,验证版本是否强制更新【版本控制表参考sys_ios_version_config 和 sys_android_version_config 】

        3)强制更新处理(服务端处理)

                1) 中间件里面 验证签名时后,判断是否有强制更新版本,

                        1)只有 > 当前版本的app 需要强制更新 返回 code码【30000】前端根据 返回code码,弹强制更新 弹窗 进行强更

                        2)无需强更,正常流转

1.【sys-configure/version-control】版本控制接口

        1.传参/返回结构

                header传参:

                        device_id>: 设备id

                        platform>: ios,android

                        build-version>:构建版本号

        2.返回结构

{
	"success": true,
	"statusCode": 200,
	"result": {
		"id": 5,
		"version": "1.5.0",
		"new_version": "",
		"content": "",
		"created_at": 1591604081,
		"updated_at": 1591604081,
		"is_forced_updating": 2,
		"title": "更新提醒",
		"updated_url": "https://apps.apple.com/cn/app/id1522237063",
		"is_bring": 2,
		"api_version": 5,
		"build_version": "20200929"
	},
	"message": "OK"
}

2.程序实现过程

        1根据platform和build-version 查看对应端的版本控制表

        2.先查看大于此版本的,有没有需要更新的版本

                1)没有更新

                        1.返回当前版本信息 is_forced_updating = 0无更新

                2)有更新

                        1.有强制更新

                                返回最新版本信息 is_forced_updating = 2强制更新

                        2.普通更新

                                返回最新版本信息 is_forced_updating = 1 普通更新

接口兼容方案:

        主要是针对【切掉app后台,重新打开app的页面接口兼容】

                1.广场推荐列表 接口、置顶热门话题列表【未登录】

                2.桌面 置顶收藏夹,我的收藏列表 【登录】

        解决方案:

                以上接口数据结构有调整,将上个版本的 列表数据静态化 存储到json文件中;

                上个版本 的接口 从oss读取对应版本 接口的数据 返回给前端【json文件命名 产品版本号_接口名称.json 如:202002225_attentionList.json】

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猪@笨笨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值