分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

PCB WCF ?Web接口增减参数后,在客户端不更新的情况,是否影响客户端,评估测试

发布时间:2023-09-06 02:02责任编辑:顾先生关键词:Web

 1.目的:由于接口众多,服务端变更接口,会造成服务停用更新,造成客户端不能使用或报错,

              在此评估【Web中心】此服务端,接口接口参数增加或减少,是否对客户端造成影响

 2.评估内容:服务端增加单值参数,服务端减少单个值参数,Mod对象增加参数,Mod对象减少参数,

                  (而Json数据类型在此不作评估内容,是因为Json对象反序列化具有很好的伸缩型,不会影响客户端调用方)

3.附PCB工程系统集成示意图:

一.Web服务端增加单个值参数

     改前-- 服务端(1个参数):

 ???????/// <summary> ???????/// 测试Web接口(单值参数) ???????/// </summary> ???????/// <param name="ar1"></param> ???????/// <returns></returns> ???????public string getInfoTest(string ar1) ???????{ ???????????return $"getInfoTest传参测试{ar1}"; ???????}

     客户端调用(1个参数):

 ????????string result = WebOrc2_.getInfoTest("1"); ????????// 返回: ?getInfoTest传参测试1

   

     改后-- 服务端(2个参数)---增加参数:

 ???????/// <summary> ???????/// 测试Web接口(单值参数) ???????/// </summary> ???????/// <param name="ar1"></param> ???????/// <returns></returns> ???????public string getInfoTest(string ar1, int ar2) ???????{ ???????????return $"getInfoTest传参测试{ar1}___{ar2}"; ???????}

    客户端调用(1个参数)---客户端不更新接口引用:

 ???????string result = WebOrc2_.getInfoTest("1"); ???????// 返回: ?getInfoTest传参测试1___0

    小结:对于服务端接口增加单值参数后,是不会造成客户端调用报错的,服务端对于增加的参数初始值处理:如:int初始0,  string初始null

二. Web服务端减少单个值参数

     改前-- 服务端(2个参数):

 ????????/// <summary> ???????/// 测试Web接口(单值参数) ???????/// </summary> ???????/// <param name="ar1"></param> ???????/// <returns></returns> ???????public string getInfoTest(string ar1, int ar2) ???????{ ???????????return $"getInfoTest传参测试{ar1}___{ar2}"; ???????}

       客户端调用(2个参数):

 ????????string result = WebOrc2_.getInfoTest("1",2); ?????????// 返回: ?getInfoTest传参测试1___2

   

      改后-- 服务端(1个参数):

 ?????/// <summary> ???????/// 测试Web接口(单值参数) ???????/// </summary> ???????/// <param name="ar1"></param> ???????/// <returns></returns> ???????public string getInfoTest(string ar1) ???????{ ???????????return $"getInfoTest传参测试{ar1}"; ???????}

     客户端调用(2个参数)---客户端不更新接口引用:

 ??????????string result = WebOrc2_.getInfoTest("1",2); ???????????// 返回: ?getInfoTest传参测试1

    小结:对于服务端接口减少单值参数后,是不会造成客户端调用报错的

三. Web服务端增加Mod参数

    改前-- 服务端(Mod类1个参数):

 ???????/// <summary> ???????/// 测试Web接口(单值参数) ???????/// </summary> ???????/// <param name="ar1"></param> ???????/// <returns></returns> ???????public string getInfoTest(ModTest mod) ???????{ ???????????return $"getInfoTest传参测试{mod.ar1}"; ???????} ????????public class ModTest ????????{ ????????????public string ar1 { get; set; } ????????}

      客户端调用(Mod类1个参数):

 ???????????ModTest mod_ = new ModTest(); ???????????mod_.ar1 = "1"; ???????????string result = WebOrc2_.getInfoTest(mod_); ???????????// 返回: ?getInfoTest传参测试1

     

      改后-- 服务端(Mod类2个参数)---增加参数:

 ???????/// <summary> ???????/// 测试Web接口(单值参数) ???????/// </summary> ???????/// <param name="ar1"></param> ???????/// <returns></returns> ???????public string getInfoTest(ModTest mod) ???????{ ???????????return $"getInfoTest传参测试{mod.ar1}__{mod.ar2}"; ???????} ???????public class ModTest ????????{ ????????????public string ar1 { get; set; } ????????????public string ar2 { get; set; } ????????}

    客户端调用(Mod类1个参数)--客户端不更新接口引用:

 ???????????ModTest mod_ = new ModTest(); ???????????mod_.ar1 = "1"; ???????????string result = WebOrc2_.getInfoTest(mod_); ???????????// 返回: ?getInfoTest传参测试1__

 小结:对于服务端接口Mod减少参数后,是不会造成客户端调用报错的,服务端对于增加的参数初始值处理:如:int初始0,  string初始null

四.Web服务端减少Mod参数

    改前-- 服务端(Mod类2个参数): 

 ???????/// <summary> ???????/// 测试Web接口(单值参数) ???????/// </summary> ???????/// <param name="ar1"></param> ???????/// <returns></returns> ???????public string getInfoTest(ModTest mod) ???????{ ???????????return $"getInfoTest传参测试{mod.ar1}__{mod.ar2}"; ???????} ???????public class ModTest ????????{ ????????????public string ar1 { get; set; } ????????????public string ar2 { get; set; } ????????}

     客户端调用(Mod类2个参数):

 ??????????ModTest mod_ = new ModTest(); ???????????mod_.ar1 = "1"; ???????????mod_.ar2 = "2"; ???????????string result = WebOrc2_.getInfoTest(mod_); ???????????// 返回: ?getInfoTest传参测试1__2

      改后-- 服务端(Mod类1个参数):

 ???????/// <summary> ???????/// 测试Web接口(单值参数) ???????/// </summary> ???????/// <param name="ar1"></param> ???????/// <returns></returns> ???????public string getInfoTest(ModTest mod) ???????{ ???????????return $"getInfoTest传参测试{mod.ar1}"; ???????} ????????public class ModTest ????????{ ????????????public string ar1 { get; set; } ????????}

      客户端调用(Mod类2个参数)--客户端不更新接口引用:

 ???????????ModTest mod_ = new ModTest(); ???????????mod_.ar1 = "1"; ???????????mod_.ar2 = "2"; ???????????string result = WebOrc2_.getInfoTest(mod_); ???????????// 返回: ?getInfoTest传参测试1

 小结:对于服务端接口Mod类减少参数后,是不会造成客户端调用报错的

PCB WCF ?Web接口增减参数后,在客户端不更新的情况,是否影响客户端,评估测试

原文地址:https://www.cnblogs.com/pcbren/p/9253324.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved