当前位置: 首页 > news >正文

浅谈电子商务网站建设与管理安阳那里可以制作网站

浅谈电子商务网站建设与管理,安阳那里可以制作网站,企业官网建站,基础展示型网站1、前言 在日常开发过程中#xff0c;大家经常都会遇到#xff1a;新需求来了#xff0c;但是需要跟第三方接口来对接#xff0c;第三方服务还没好#xff0c;我们自己的功能设计如何继续呢#xff1f;这里#xff0c;给大家推荐一下Mock方案。 2、场景示例 2.1、场景一… 1、前言 在日常开发过程中大家经常都会遇到新需求来了但是需要跟第三方接口来对接第三方服务还没好我们自己的功能设计如何继续呢这里给大家推荐一下Mock方案。 2、场景示例 2.1、场景一公司外部间的接口调用 我们都知道联调外部接口往往都需要申请测试环境而申请外部测试环境的时间往往都很长、会耗费很多精力。当然一般都是项目经理去协调的但是作为有担当的开发人员不可能在这个空窗期摸鱼划水吧。不然等环境下来之后可就是自己苦日子的开始毕竟不催工期的项目经理还是少见的。 2.2、场景二公司内部之间的接口调用 曾经有一个项目需要我们配合另一个部门一起做。需求宣讲完后就是定排期然后我们就问合作部门“这几个接口什么时候可以联调” 因为合作部门还在赶另外一个项目便回复道“我们先一起对接口等忙完手头这个项目再给出排期可以吗” 然后我们催促道“那也得给出一个具体的上线计划啊” 在我们的催促下合作部门终于给出了一个日期。 过了几天合作部门手头的项目出现了延期又跑过来跟我们说“我们可能晚几天才能提供那些接口。” 因为需要与对方交互的接口的功能迟迟未动我们也不敢释放人手担心人手释放后项目又立马启动开发人员好不容易熟悉了新项目又要回来做这个。 为此我们坐在一起商量了一个解决思路 3、解决思路 我们希望有一个 Mock 接口服务它能提供与正式服务的 URI、出入参一样的接口区别是主机名或者 URL 的前缀不一样。 在开发和测试过程中我们都连接上 Mock 服务。等到接口或环境搭建好后我们无须修改代码通过一个简单的配置切换即可让服务连接到真实接口服务然后通过一些简单的回归测试即可实现上线大大提升了开发效率此时整体的系统架构如下图所示 不过如果我们想实现这一思路可就一点不简单了因为他包含了Mock服务端和Mock服务客户端调用设计。 4、Mock服务端设计 先说下在Mock服务端设计过程中都需要满足哪些需求 4.1、Mock接口支持返回动态字段数据 比如有个接口输入的参数为userId、orderid、redirectUrl如下所示 输出参数为success和startTime如下所示 我们希望每次调用这个Mock接口时startTime都返回当前时间如 {success:true,startTime:2023-11-12 124502} 4.2、Mock接口支持一些简单逻辑 在测试过程中我们会通过不同的测试用例走完不同的流程。 紧接着上面的例子比如我们希望调用 Mock 接口传入的 UserID 是 10001那么 Mock 接口返回的 success 值为 True否则为 False而后系统会根据不同的 success 值进入不同的流程。 4.3、Mock接口支持回调 在实际开发工作中有很多联调接口需要异步回调比如上面的例子中如果返回的 success 值是 True我们希望过一段时间回调 Redirect URL。 4.4、Mock接口支持规则校验 我们希望通过添加一些规则让这个 Mock 服务对传入的参数进行校验比如校验 UserID 是否为数字、OrderID 是否为 15 位数字、Redirect URL 是否为 URL…… 4.5、Mock接口支持接口文档导入 这一点比较特别比如某些团队在设计接口文档时直接将接口定义放在 Wiki 上而某些团队直接写在 Java 代码中再通过 Swagger 生成在线接口文档。 对于前者我们要求定义接口时直接将接口文档放在新的 Mock 服务上。而对于后者因为不想改变他们的习惯所以最终 Mock 服务需要支持 Swagger 文档导入。 根据以上五点需求我们开始在市面上找一些合适的开源框架并发现市面上收费的接口文档管理工具有 Apizza、Eolinker免费的有 YAPI 和 RAP2出于各种原因的考虑最终我们决定在 YAPI 和 RAP2 中进行选择。 这里我们可以看一下YAPI和RAP2对比 通过表中的内容对比很明显YAPI更符合我们的需求。因此在Mock服务端设计过程中我们选择基于YAPI进行二次开发。 5、Mock服务客户端调用设计 说完Mock服务端接下来我们看看调用Mock服务客户端时都需要考虑什么 5.1、Mock服务如何支持基于二进制流的接口调用 因为历史原因有些服务间调用使用 Spring Cloud Feign 而有些服务间调用使用基于二进制流序列化的 RPC当然是基于 TOP 协议。 我们知道如果服务间的通讯是基于二进制流而不是 JSON就没办法在 YAPI 上通过简单的界面定义输入输出参数了且 YAPI 也不支持二进制流的调用此时我们的解决方案如下图所示 在上面框架中我们添加了一个拦截器它会拦截所有服务间调用的请求并增加一个判断。如果访问的地址是 Mock 服务我们就使用 HTTP 协议并且通过 JSON 进行序列化和反序列这样问题就解决了。 这里我们需要补充一点曾经我还碰到过一些第三方接口使用 XML 格式很多银行的接口就是这样最终我们决定先不支持自定义XML格式的接口因为改造 YAPI 的工作量实在太大。 5.2、Mock服务客户端如何简单切换Mock与真实服务 这里我们需要考虑以下两种情况 对于第三方接口我们只需在配置中将第三方接口的 host 改为 Mock 服务的 host 即可。 对于微服务间的调用我们知道 Spring Cloud 中的微服务定义都是服务级别但是在实际开发的场景中我们需要使用接口级别的 Mock比如我们开发的 operationService它依赖 productService 的几个接口。因此在新项目中我们还需要在 productService 中新增几个接口且它们必须调用 Mock 服务的接口而原先的接口继续调用真实的 productService 中原来已经做好的接口。此时我们需要在配置中心增加 2 个配置项mock.apis 和 mock.host每次服务间调用时先判断调用的 URI 是否在 mock.apis 字符串列表中如果在则让它调用 mock.host 这台机器。特别说明一点关于这点曾经我们也出过错。因为在上线时配错了 mock.apis 和 mock.host导致线上环境使用了 Mock 服务的情况所以我们需要多考虑下面这点。 5.3、如何预防线上环境使用Mock服务 对于此问题我们做了一个检查代码在服务启动时先判断当前的环境名称如果是 prod线上环境先判断 mock.apis 中是否有值有值的话提示异常。然后扫描所有的 properties 配置如果配置中包含 Mock 服务地址则说明有些地方配置了 Mock 服务的调用也提示异常。 到这里整体的 Mock 调用方案就完成了。 以上就是关于Mock服务端与客户端的设计与实现思路有更好的方案或思路 可以联系我哦 微信公众号服务端技术精选 淘宝小店淘宝小店 个人小网站小网站 本文由 mdnice 多平台发布
http://www.w-s-a.com/news/28862/

相关文章:

  • 网站设计与开发技术教程十度公司做网站怎么样
  • 企业网站推广方案在哪里智慧团建登录入口官网手机版
  • google网页版入口seo索引擎优化
  • 东乡做网站常州网络公司联系方式
  • 做网站激励语家居装饰网站设计论文
  • 镜像的网站怎么做排名无极网站建设质量
  • 奉贤集团公司网站建设小工具文本wordpress
  • 不用代码做网站网站建设和运行费用
  • 阜阳网站开发招聘网站建设合作协议申请
  • 电子配件 技术支持 东莞网站建设wordpress 生成html代码
  • 网站用免费空间好不好网站建设的视频
  • 网站开发项目职责门户资源分享网站模板
  • 建网站需要什么语言如何做二维码跳转到网站
  • 天津建设交培训中心网站做网站起名字
  • 黑河北京网站建设湛江市住房和城乡建设局网站
  • 网站建设拾金手指下拉十九企业查询官网
  • 邢台提供网站建设公司哪家好五合一建站
  • 京东网站设计代码驻马店做网站的公司
  • 织梦网站模板使用教程福州网站建设工作
  • 做网站要准备的需求asp 网站后台
  • 滨州网站开发公司中立建设集团有限公司网站
  • 泰安建设厅网站做网站为什么要建站点
  • 有什么好的手机推荐网站创建网站需要哪些工作
  • 网站能给企业带来什么上饶市网站建设公司
  • 学做网站卖东西去哪学南宁网站建设gxjzdrj
  • 欧美网站建设案例网站开发 男生
  • 网站正在开发中做电子元器件的网站
  • 做网站搭建的公司中国建设银行官网站u盾证书
  • 大连哪里有手机自适应网站建设公司网站介绍模板 html
  • 佛山模板建站宣传片制作公司电话