当前位置:首页 > Windows程序 > 正文

封装WebAPI客户端,附赠Nuget打包上传VS拓展工具

2021-05-25 Windows程序

标签:

一、前言

上篇《 WebAPI使用多个xml文件生成帮助文档 》有提到为什么会出现基于多个xml文件生成帮助文档的解决方案,因为定义的模型可能的用处有:

1:单元测试

2:其他项目引用(可能以Nuget包的形式)

3:WebAPI客户端(封装的HttpClient及WebAPI接口调用,其实包含在第2点内..)

要源码的可以直接拉到最下面,,源码一如既往的还在那

二、为什么要封装WebAPI客户端

1:让WebAPI对于调用者来说“透明”,直接以引用程序集的方式。

2:统一项目内调用入口(当然了,非要绕过直接去请求接口肯定也是可以得,但是这是团队管理的问题)。

3:组合接口调用

4:版本化(通过Nuget,不论是自建还是Nuget.org)

三、封装的WebAPI客户端都包含些什么

这里继续使用 WebAPI2PostMan 项目来演示。

首先,因为将WebAPI的接口以HttpClient来进行封装,那至少需要定义出接口的请求路由,此处仅定义出了两处。

我们在解决方案新建一个类库项目,并将其命名为 WebAPI2PostMan.Client ,接着添加一个名为 WebApi2PostManStatic 的类

using System.Configuration;  

  

namespace WebAPI2PostMan.Client  

{  

    /// <summary>  

    ///     WebApi2PostMan静态资源类  

    /// </summary>  

    public class WebApi2PostManStatic  

    {  

        /// <summary>  

        ///     服务地址  

        /// </summary>  

        public static string ServiceUrl = ConfigurationManager.AppSettings["WebAPI2PostManServiceUrl"];  

        /// <summary>  

        ///     获取所有产品  

        /// </summary>  

        public static string RouteProductGetAll = "api/Product/All";  

        /// <summary>  

        ///     添加产品  

        /// </summary>  

        public static string RouteProductAdd = "api/Product/Add";  

    }  

}  

接口请求无非就是Http的那几个方法,但此处仅认为我们的接口只包含Get和Post两种Http请求方法。

基于此,我们定义出一个WebApiHelper类。

/// <summary>  

///     WebAPI帮助类  

/// </summary>  

public class WebApiHelper  

{  

    public static T1 CallPostWebApi<T1, T2>(string url, T2 request, string serviceUrl, int? timeOut = 10)  

      

  

    public static T1 CallGetWebApi<T1>(string url, string serviceUrl, int? timeOut = 10)  

     

  

    public static List<TResponse> CallWebApiBatch<TRequest, TResponse>(HttpMethod method, string endpoint, List<TRequest> batchRequestModels, string url, string serviceUrl, int? timeOut = 10)  

      

  

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/71038.html