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

WebAPI生成可导入到PostMan的数据

2021-05-25 Windows程序

标签:

一、前言

现在使用WebAPI来作为实现企业服务化的需求非常常见,不可否认它也是很便于使用的,基于注释可以生成对应的帮助文档(Microsoft.AspNet.WebApi.HelpPage),但是比较便利和可持久化的调试官方却没有相应的集成,虽然我们可以使  用诸如Fiddler、Swagger、PostMan、及其他手写代码的方式等等来调试我们的WebAPI,但是却依然不是很方便,对于公司来说也需要有一种可以统一、可持久化、且行之有效的规范。

调试接口我希望他能达到以下3点:

1:可根据接口定义生成测试数据。

2:测试数据可持久化,便于持续迭代。

3:测试数据可共享。文本主要介绍如何利用PostMan实现这3点。

二、有哪些调试方法

目前所知道的调试方式有:

1:耳熟能详的Fiddler就不说了,功能非常强大,但不是我们想要的。

2:PostMan,使用方便且满足上面的2和3,这是一个谷歌插件(地址在这),也有App版本(https://www.getpostman.com/)推荐。

3:Swagger,已有人将其结合SwaggerUI集成到WebAPI中,Nuget上安装

install-package Swashbuckle  

即可,项目地址https://github.com/domaindrivendev/Swashbuckle。

4:手写HttpClient来实现,其他的还有https://github.com/wuchang/WebApiTestClient。

以上这几种方法比较推荐的自然是PostMan。

三、PostMan的基本操作

我们先来看看使用PosMan的一些基本操作。

如下所示,我们定义了几个简单的方法来作为我们调试的接口。

using System;  

using System.Collections.Generic;  

using System.Linq;  

using System.Web.Http;  

using WebAPI2PostMan.Models;  

  

namespace WebAPI2PostMan.Controllers  

{  

    /// <summary>  

    ///     产品服务  

    /// </summary>  

    [RoutePrefix("Product")]  

    public class ProductController : ApiController  

    {  

        private static readonly List<Product> Products = new List<Product>  

        {  

            new Product{Id = Guid.NewGuid(), Description = "产品描述",Name = "产品名称",Price = 123},  

            new Product{Id = Guid.NewGuid(), Description = "产品描述",Name = "产品名称",Price = 124},  

            new Product{Id = Guid.NewGuid(), Description = "产品描述",Name = "产品名称",Price = 125},  

            new Product{Id = Guid.NewGuid(), Description = "产品描述",Name = "产品名称",Price = 126}  

        };  

  

        /// <summary>  

        ///     获取所有产品  

        /// </summary>  

        [HttpGet, Route("All")]  

        public IEnumerable<Product> Get()  

        {  

            return Products;  

        }  

  

        /// <summary>  

        ///     获取产品  

        /// </summary>  

        /// <param name="id">产品编号</param>  

        [HttpGet, Route("{id}")]  

        public string Get(Guid id)  

        {  

            return "value";  

        }  

  

        /// <summary>  

        ///     添加产品  

        /// </summary>  

        /// <param name="request">产品请求</param>  

        [HttpPost, Route("")]  

        public string Post(Product request)  

        {  

            Products.Add(request);  

            return "ok";  

        }  

        /// <summary>  

        ///     编辑产品  

        /// </summary>  

        /// <param name="id">产品编号</param>  

        /// <param name="request">编辑后的产品</param>  

        [HttpPut, Route("{id}")]  

        public void Put(int id, Product request)  

        {  

        }  

        /// <summary>  

        ///     删除产品  

        /// </summary>  

        /// <param name="id">产品编号</param>  

        [HttpDelete, Route("{id}")]  

        public string Delete(Guid id)  

        {  

            var model = Products.FirstOrDefault(x => x.Id.Equals(id));  

            Products.Remove(model);  

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