zoukankan      html  css  js  c++  java
  • PCB WCF 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类减少参数后,是不会造成客户端调用报错的

  • 相关阅读:
    GIT使用方法
    结对-结对编项目贪吃蛇-设计文档
    结对-结对编项目贪吃蛇-开发环境搭建过程
    《团队-爬取豆瓣电影TOP250-需求分析》
    《团队-爬取豆瓣电影TOP250-成员简介及分工》
    结对-结对编项目贪吃蛇-需求分析
    20170906-构建之法:阅读问题
    20170906-构建之法:现代软件工程-阅读笔记
    团队名称:极限定理
    软件工程初识
  • 原文地址:https://www.cnblogs.com/pcbren/p/9253324.html
Copyright © 2011-2022 走看看