导读
记录一次基于原有的后端api构建移动端商城,参照已有的安卓应用UI设计图开发。 技术选型 后端 Spring Cloud OAuth2 + Spring Cloud Eureka + Spring Boot 前端 Vue + Vue Router + Vue CLI3 + Vant ;移动商城从技术选型到项目上线花费一个星期后期优化测试花费3天, 团队规模2人 14人天 后端api基于原有的安卓api 后续增加了一些没有的接口 工作划分3天页面开发 4天对接联调测试 在这期间使用了移动端页面选型使用了有赞的Vant节省了很多时间 Vant 大法好 哈哈
开始
思路
将静态页面部署到阿里云oss上 配置我们自己的域名; 静态页面通过OAuth2密码模式登录 获取Token 携带Token 请求api网关
因为部署在不同的域名下存在跨域问题后台需显示的声明
如 api 中
ResourceServer 需要添加 .cors()
@Configuration
@EnableResourceServer
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
/**
* 省略其他
**/
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/user/**", "/upload", "/version").permitAll()
.and().cors() //
.and().csrf().disable()
.exceptionHandling()
.authenticationEntryPoint((request, response, authException) -> response.sendError(HttpServletResponse.SC_UNAUTHORIZED))
.and()
.authorizeRequests()
.anyRequest().authenticated()
.and()
.httpBasic();
}
}
MvcConfig 中
@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://m.xx.com", "http://localhost:8080")
.allowedMethods("*")
.allowedHeaders("*")
.allowCredentials(true).maxAge(3600);
}
}
页面效果
优化
还在进行中 使用PWA对其改造 ,目前仅支持谷歌浏览器 百度浏览器 新版的safari 获得接近与原生应用的体验 目前只落地了可以添加主屏幕启动 后期在加入缓存 提升用户体验及减小后端压力
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。