webapi接口文档和在线测试工具_如何根据接口文档webapi写接口 - CSDN
精华内容
参与话题
  • ASP.NET 创建的Web API项目可以自己配置接口文档的XML显示,这样接口更新注释更新了重新发布就有了,确实方便不少,下来就介绍下怎么配置生成API接口注释文档。创建Web API项目请参考:ASP.NET 使用Swagger开发Web...

    在开发接口的时候,写接口文档已是一件不可忽视的事情,有了更新也要同步更新很麻烦。ASP.NET 创建的Web API项目可以自己配置接口文档的XML显示,这样接口更新和注释更新了重新发布就有了,确实方便不少,下来就介绍下怎么配置生成API接口注释文档。另外,如果在接口生成的同时能够一并生成测试页面也是不错的选择,能节省不少开发时间和人力成本。

    创建Web API项目

    请参考:ASP.NET 使用Swagger开发Web API接口项目这里我们以WebAPI项目为例。

    修改默认的API路由配置

    为什么要修改呢?因为每一个Controller的默认路由都是指定到"api/{controller}/{id}"的,所以默认生成的控制器类似下面:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Net.Http;
    using System.Web.Http;
    
    namespace WebAPI.Controllers
    {
        public class ValuesController : ApiController
        {
            // GET api/<controller>
            public IEnumerable<string> Get()
            {
                return new string[] { "value1", "value2" };
            }
    
            // GET api/<controller>/5
            public string Get(int id)
            {
                return "value";
            }
    
            // POST api/<controller>
            public void Post([FromBody]string value)
            {
            }
    
            // PUT api/<controller>/5
            public void Put(int id, [FromBody]string value)
            {
            }
    
            // DELETE api/<controller>/5
            public void Delete(int id)
            {
            }
        }
    }

    我们需要一个方法提供多种HTTP访问方式,所以应该将action的配置加入,如:"api/{controller}/{action}/{id}"。

    修改WebApiConfig.cs文件:


    代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web.Http;
    
    namespace WebAPI
    {
        public static class WebApiConfig
        {
            public static void Register(HttpConfiguration config)
            {
                // Web API 配置和服务
    
                // Web API 路由
                config.MapHttpAttributeRoutes();
    
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{action}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
            }
        }
    }
    

    修改HelpPage配置启动

    修改HelpPageConfig.cs文件,代码如下:

    // Uncomment the following to provide samples for PageResult<T>. Must also add the Microsoft.AspNet.WebApi.OData
    // package to your project.
    #define Handle_PageResultOfT
    
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Diagnostics.CodeAnalysis;
    using System.Linq;
    using System.Net.Http.Headers;
    using System.Reflection;
    using System.Web;
    using System.Web.Http;
    using WebAPI.Utils;
    
    namespace WebAPI.Areas.HelpPage
    {
        /// <summary>
        /// Use this class to customize the Help Page.
        /// For example you can set a custom <see cref="System.Web.Http.Description.IDocumentationProvider"/> to supply the documentation
        /// or you can provide the samples for the requests/responses.
        /// </summary>
        public static class HelpPageConfig
        {
            [SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters",
                MessageId = "WebAPI.Areas.HelpPage.TextSample.#ctor(System.String)",
                Justification = "End users may choose to merge this string with existing localized resources.")]
            [SuppressMessage("Microsoft.Naming", "CA2204:Literals should be spelled correctly",
                MessageId = "bsonspec",
                Justification = "Part of a URI.")]
            public static void Register(HttpConfiguration config)
            {
                 Uncomment the following to use the documentation from XML documentation file.
                //config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));
                #region *************************XML显示接口参数和注释***************************************
                // 添加本项目或其他引用项目的XML配置:可加多个
                config.SetDocumentationProvider(new MultiXmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/bin/WebAPI.XML")));
                #endregion
                 Uncomment the following to use "sample string" as the sample for all actions that have string as the body parameter or return type.
                 Also, the string arrays will be used for IEnumerable<string>. The sample objects will be serialized into different media type 
                 formats by the available formatters.
                //config.SetSampleObjects(new Dictionary<Type, object>
                //{
                //    {typeof(string), "sample string"},
                //    {typeof(IEnumerable<string>), new string[]{"sample 1", "sample 2"}}
                //});
    
                // Extend the following to provide factories for types not handled automatically (those lacking parameterless
                // constructors) or for which you prefer to use non-default property values. Line below provides a fallback
                // since automatic handling will fail and GeneratePageResult handles only a single type.
    #if Handle_PageResultOfT
                config.GetHelpPageSampleGenerator().SampleObjectFactories.Add(GeneratePageResult);
    #endif
    
                // Extend the following to use a preset object directly as the sample for all actions that support a media
                // type, regardless of the body parameter or return type. The lines below avoid display of binary content.
                // The BsonMediaTypeFormatter (if available) is not used to serialize the TextSample object.
    
                #region *************************默认JSON显示接口***************************************
                //config.SetSampleForMediaType(
                //    new TextSample("Binary JSON content. See http://bsonspec.org for details."),
                //    new MediaTypeHeaderValue("application/bson"));
                #endregion
    
                 Uncomment the following to use "[0]=foo&[1]=bar" directly as the sample for all actions that support form URL encoded format
                 and have IEnumerable<string> as the body parameter or return type.
                //config.SetSampleForType("[0]=foo&[1]=bar", new MediaTypeHeaderValue("application/x-www-form-urlencoded"), typeof(IEnumerable<string>));
    
                 Uncomment the following to use "1234" directly as the request sample for media type "text/plain" on the controller named "Values"
                 and action named "Put".
                //config.SetSampleRequest("1234", new MediaTypeHeaderValue("text/plain"), "Values", "Put");
    
                 Uncomment the following to use the image on "../images/aspNetHome.png" directly as the response sample for media type "image/png"
                 on the controller named "Values" and action named "Get" with parameter "id".
                //config.SetSampleResponse(new ImageSample("../images/aspNetHome.png"), new MediaTypeHeaderValue("image/png"), "Values", "Get", "id");
    
                 Uncomment the following to correct the sample request when the action expects an HttpRequestMessage with ObjectContent<string>.
                 The sample will be generated as if the controller named "Values" and action named "Get" were having string as the body parameter.
                //config.SetActualRequestType(typeof(string), "Values", "Get");
    
                 Uncomment the following to correct the sample response when the action returns an HttpResponseMessage with ObjectContent<string>.
                 The sample will be generated as if the controller named "Values" and action named "Post" were returning a string.
                //config.SetActualResponseType(typeof(string), "Values", "Post");
            }
    
    #if Handle_PageResultOfT
            private static object GeneratePageResult(HelpPageSampleGenerator sampleGenerator, Type type)
            {
                if (type.IsGenericType)
                {
                    Type openGenericType = type.GetGenericTypeDefinition();
                    if (openGenericType == typeof(PageResult<>))
                    {
                        // Get the T in PageResult<T>
                        Type[] typeParameters = type.GetGenericArguments();
                        Debug.Assert(typeParameters.Length == 1);
    
                        // Create an enumeration to pass as the first parameter to the PageResult<T> constuctor
                        Type itemsType = typeof(List<>).MakeGenericType(typeParameters);
                        object items = sampleGenerator.GetSampleObject(itemsType);
    
                        // Fill in the other information needed to invoke the PageResult<T> constuctor
                        Type[] parameterTypes = new Type[] { itemsType, typeof(Uri), typeof(long?), };
                        object[] parameters = new object[] { items, null, (long)ObjectGenerator.DefaultCollectionSize, };
    
                        // Call PageResult(IEnumerable<T> items, Uri nextPageLink, long? count) constructor
                        ConstructorInfo constructor = type.GetConstructor(parameterTypes);
                        return constructor.Invoke(parameters);
                    }
                }
    
                return null;
            }
    #endif
        }
    }

    这里修改支持了多个XML文档方法,扩展类如下:

    using System;
    using System.Linq;
    using System.Reflection;
    using System.Web.Http.Controllers;
    using System.Web.Http.Description;
    using WebAPI.Areas.HelpPage;
    using WebAPI.Areas.HelpPage.ModelDescriptions;
    
    namespace WebAPI.Utils
    {
        /// <summary>A custom <see cref='IDocumentationProvider'/> that reads the API documentation from a collection of XML documentation files.</summary>
        public class MultiXmlDocumentationProvider : IDocumentationProvider, IModelDocumentationProvider
        {
            /*********
            ** Properties
            *********/
            /// <summary>The internal documentation providers for specific files.</summary>
            private readonly XmlDocumentationProvider[] Providers;
    
    
            /*********
            ** Public methods
            *********/
            /// <summary>Construct an instance.</summary>
            /// <param name='paths'>The physical paths to the XML documents.</param>
            public MultiXmlDocumentationProvider(params string[] paths)
            {
                this.Providers = paths.Select(p => new XmlDocumentationProvider(p)).ToArray();
            }
    
            /// <summary>Gets the documentation for a subject.</summary>
            /// <param name='subject'>The subject to document.</param>
            public string GetDocumentation(MemberInfo subject)
            {
                return this.GetFirstMatch(p => p.GetDocumentation(subject));
            }
    
            /// <summary>Gets the documentation for a subject.</summary>
            /// <param name='subject'>The subject to document.</param>
            public string GetDocumentation(Type subject)
            {
                return this.GetFirstMatch(p => p.GetDocumentation(subject));
            }
    
            /// <summary>Gets the documentation for a subject.</summary>
            /// <param name='subject'>The subject to document.</param>
            public string GetDocumentation(HttpControllerDescriptor subject)
            {
                return this.GetFirstMatch(p => p.GetDocumentation(subject));
            }
    
            /// <summary>Gets the documentation for a subject.</summary>
            /// <param name='subject'>The subject to document.</param>
            public string GetDocumentation(HttpActionDescriptor subject)
            {
                return this.GetFirstMatch(p => p.GetDocumentation(subject));
            }
    
            /// <summary>Gets the documentation for a subject.</summary>
            /// <param name='subject'>The subject to document.</param>
            public string GetDocumentation(HttpParameterDescriptor subject)
            {
                return this.GetFirstMatch(p => p.GetDocumentation(subject));
            }
    
            /// <summary>Gets the documentation for a subject.</summary>
            /// <param name='subject'>The subject to document.</param>
            public string GetResponseDocumentation(HttpActionDescriptor subject)
            {
                return this.GetFirstMatch(p => p.GetDocumentation(subject));
            }
    
    
            /*********
            ** Private methods
            *********/
            /// <summary>Get the first valid result from the collection of XML documentation providers.</summary>
            /// <param name='expr'>The method to invoke.</param>
            private string GetFirstMatch(Func<XmlDocumentationProvider, string> expr)
            {
                return this.Providers
                    .Select(expr)
                    .FirstOrDefault(p => !String.IsNullOrWhiteSpace(p));
            }
        }
    }

    注意:开启XML文档注释的时候HelpPageConfig.cs需要注释掉如下代码

       #region *************************默认JSON显示接口***************************************
                //config.SetSampleForMediaType(
                //    new TextSample("Binary JSON content. See http://bsonspec.org for details."),
                //    new MediaTypeHeaderValue("application/bson"));
                #endregion

    编写示例程序验证API文档更新情况

    PersonController.cs示例:

    using Newtonsoft.Json;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Net.Http;
    using System.Web.Http;
    using WebAPI.Utils;
    
    namespace WebAPI.Controllers
    {
        /// <summary>
        /// 人物
        /// </summary>
        public class Person
        {
            /// <summary>
            /// 唯一标识记录ID
            /// </summary>
            public long Id { set; get; }
            /// <summary>
            /// 姓名
            /// </summary>
            public string Name { set; get; }
            /// <summary>
            /// 年龄
            /// </summary>
            public int Age { set; get; }
            /// <summary>
            /// 人物构造函数
            /// </summary>
            /// <param name="Id"></param>
            /// <param name="Name"></param>
            /// <param name="Age"></param>
            public Person(long Id, string Name, int Age)
            {
                this.Id = Id;
                this.Name = Name;
                this.Age = Age;
            }
        }
    
        /// <summary>
        /// 结果对象
        /// </summary>
        public class Result
        {
            /// <summary>
            /// 状态:0失败,1成功
            /// </summary>
            public int Status { set; get; }
            /// <summary>
            /// 数据
            /// </summary>
            public string Data { set; get; }
            /// <summary>
            /// 消息
            /// </summary>
            public string Msg { set; get; }
            /// <summary>
            /// 结果构造函数
            /// </summary>
            /// <param name="Status"></param>
            /// <param name="Data"></param>
            /// <param name="Msg"></param>
            public Result(int Status, string Data, string Msg)
            {
                this.Status = Status;
                this.Data = Data;
                this.Msg = Msg;
            }
        }
        /// <summary>
        /// 人物视图控制器
        /// </summary>
        public class PersonController : ApiController
        {
            /// <summary>
            /// 获取所有人物
            /// </summary>
            /// <returns></returns>
            public List<Person> GetPersons()
            {
                List<Person> perons = new List<Person>();
                Person person = null;
                for (var i=1;i<=10;i++)
                {
                    person = new Person(i,"boonya"+1,new Random(100).Next());
                    perons.Add(person);
                }
                return perons;
            }
    
            /// <summary>
            /// 获取人物
            /// </summary>
            /// <param name="Id">唯一标识记录ID</param>
            /// <returns></returns>
            public Person GetPerson(long Id)
            {
                return new Person(Id, "boonya" + Id, new Random(100).Next());
            }
    
            /// <summary>
            /// 删除人物
            /// </summary>
            /// <param name="Id">唯一标识记录ID</param>
            /// <returns></returns>
            public Result DeletePerson(long Id)
            {
                return new Result(1,"","Id="+Id+"删除成功");
            }
    
            /// <summary>
            /// 添加人物
            /// </summary>
            /// <param name="Name">姓名</param>
            /// <param name="Age">年龄</param>
            /// <returns></returns>
            public Result AddPerson(string Name,int Age)
            {
                Person person = new Person(new Random(100).Next(), Name, Age);
                return new Result(1, JsonConvert.SerializeObject(person), "添加成功");
            }
        }
    }
    启动项目运行,查看API链接:

    详细接口说明类似下面:

    至此,我们看到接口的参数说明和返回值等,不用手动再去写文档了。

    注意:参考博客内容里面有怎么生成项目的XML文件。

    配置自动生成接口测试页面

    添加引用NuGet安装包:

    安装完成后运行就可以了:

    点击“Test API”按钮就可以测试了:

    使用此安装包不需要修改如下文件:

    示例程序包下载:https://download.csdn.net/download/boonya/10418822

    展开全文
  • swagger,apidoc,rap等在线API管理工具

    在项目开发过程中,总会涉及到接口文档的设计编写,之前使用的都是ms office工具,不够漂亮也不直观,变更频繁的话维护成本也更高,及时性也是大问题。基于这个背景,下面介绍几个常用的API管理工具,方便你与调用方更高效的沟通测试:

    Swagger

    官网地址:https://swagger.io Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件,是一个规范和完整的框架,标准的,语言无关,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。

    目前最新版本是V3,SwaggerUI是一个简单的Restful API 测试和文档工具。简单、漂亮、易用。通过读取JSON 配置显示API. 项目本身仅仅也只依赖一些 html,css.js静态文件. 你可以几乎放在任何Web容器上使用。

    RAP

    官网地址:http://rapapi.org/org/index.do

    RAP来自阿里巴巴,是一个可视化接口管理工具 通过分析接口结构,使用mock动态生成模拟数据,校验真实接口正确性, 围绕接口定义,通过一系列自动化工具提升我们的协作效率。可以在线使用,也可以选择本地部署。一个GUI的WEB接口管理工具。在RAP中,您可定义接口的URL、请求&响应细节格式等等。通过分析这些数据,RAP提供MOCK服务、测试服务等自动化工具。RAP同时提供大量企业级功能,帮助企业和团队高效的工作。

    在前后端分离的开发模式下,我们通常需要定义一份接口文档来规范接口的具体信息。如一个请求的地址、有几个参数、参数名称及类型含义等等。RAP 首先方便团队录入、查看和管理这些接口文档,并通过分析结构化的文档数据,重复利用并生成自测数据、提供自测控制台等等… 大幅度提升开发效率。

    APIDOC

    GitHub 地址:https://github.com/apidoc/apidoc

    APIDOC可以根据代码注释生成WEB API文档,支持大部分主流开发语言,Java、javascript、php、erlang、perl、python、ruby等等,相对而言,web接口的注释维护起来更加方便,不需要额外再维护一份文档。APIDOC从注释生成静态html网页文档,不仅支持项目版本号,还支持API版本号。

    操作步骤也是相当简单,依据官网的操作指南完成一个简单的示例。这是一个示例demo,感受一下http://apidocjs.com/example_basic/

    Spring REST Docs

    官网地址:http://projects.spring.io/spring-restdocs/

    Spring的文档帮助产生RESTful的服务文档。它结合了手写文档写的asciidoctor和自动生成与Spring MVC测试生成的片段。这种方法可以让你突破Swagger那样的工具产生的文件的局限性。它可以帮助你制作文件,准确,简洁,结构良好。生成的文档,可以让你的用户得到一个最低限度的他们所需要的信息。

    其它

    除了上面介绍到一些开源或免费的API管理工具,国内外同样也有一些公司在做这个事情,根据使用需求做好选型即可,适合自己的才是最好的。

    笔者公众号【迭代当下 · 架构未来】

    迭代当下 · 架构未来

    我申请了一个知识星球,2020 年着手沉淀一些内容,内容聚焦于个人思考、阅读、写作、投资理财、技术提升等,顺便你也可以在星球里提问,我会竭尽所能回复你,希望在未来为期一年的陪伴中,对你有所帮助。

    展开全文
  • 首先,创建一个WebApi项目,vs会自动...好了,现在先说如何打开webapi接口的自动文档: 一:项目右键属性,选择"生成"栏目,指定接口文档xml文件的路径名字 二:打开帮助文档子项目的配置文件,解开红框标注的配置

    首先,创建一个WebApi项目,vs会自动根据模版创建一个完整的webapi程序,其中包括了自动文档的一切。

    但是,这个功能却是关闭的。。。。蛋疼。。。。偏偏还没有地方显式的告诉打开的方法和步骤。。。。无语。。。

    好了,现在先说如何打开webapi接口的自动文档:

    一:项目右键属性,选择"生成"栏目,指定接口文档xml文件的路径和名字


    二:打开帮助文档子项目的配置文件,解开红框标注的配置项,并把文件路径设置成跟上面项目生成配置的一样


    三:在指定路径下,新建这个xml文件,这点不要忘了,一定要是标准的xmL文件,带规范的文件头和root节点的!!


    好了,接口的自动说明文档已经打开了,重新编译并运行,看看效果:


    是不是很帅大笑

    接下来,我们再说说如何添加测试功能。

    说起来,帮助文档都做到这一步了,再加个测试功能,对微软来说,很难吗?很难吗?蛋疼啊。。。。非要我们自己弄。。。。无语啊。。。。

    废话不多说了,言归正传

    一:项目右键打开nuget管理器,找到WebApiTestClient包,安装之


    二:打开帮助文档子项目视图文件Api.cshtml,添加右边红框标注内容


    ok,测试功能加好了大笑

    现在再次编译运行,看看效果


    怎么样,简不简单?爽不爽?

    有同学要问了,别人都在用swagger,为毛你不用?

    好吧,怎么说呢,你有没有发现WebApiTestClient包特别小?

    对了,他是一个前端小插件,也就是上图的那个按钮加弹出的测试框!!!

    嗯,仅仅只是一个小小的前端插件,所以我就用他了!!!就是这么简单!!!

    如果还不理解,就再想想吧!!

    展开全文
  • postman接口测试工具生成接口文档

    千次阅读 2018-12-13 18:39:44
    预览发布API文档 下面介绍Postman中如何预览发布API文档。 简要概述步骤 Collection 鼠标移动到某个Collection,点击 三个点 Publish Docs Publish 得到Public URL 别人打开这个Public URL,即可查看API...

    预览和发布API文档

    下面介绍Postman中如何预览和发布API文档。

    简要概述步骤

    1. Collection
    2. 鼠标移动到某个Collection,点击 三个点
    3. Publish Docs
    4. Publish
    5. 得到Public URL
    6. 别人打开这个Public URL,即可查看API文档

    详细解释具体操作

    预览API文档

    点击分组右边的大于号>

    Postman的分组右边的>

    如果只是预览,比如后台开发员自己查看API文档的话,可以选择:View in web

    Postman的分组的View in web

    等价于点击Publish Docs去发布:

    Postman的分组点击Publish Docs

    View in Web后,有 Publish的选项(见后面的截图)

    View in Web后,会打开预览页面:

    比如:

    奶牛云

    https://documenter.getpostman.com/collection/view/669382-42273840-6237-dbae-5455-26b16f45e2b9

    Postman的API文档预览-1

    Postman的API文档预览-2

    而右边的示例代码,也可以从默认的cURL换成其他的:

    示例代码从cURL换成Python

    API文档中Python示例代码

    发布API文档

    如果想要让其他人能看到这个文档,则点击 Publish:

    API文档中点击Publish去发布

    然后会打开类似于这样的地址:

    Postman Documenter

    https://documenter.getpostman.com/collection/publish?meta=Y29sbGVjdGlvbl9pZD00MjI3Mzg0MC02MjM3LWRiYWUtNTQ1NS0yNmIxNmY0NWUyYjkmb3duZXI9NjY5MzgyJmNvbGxlY3Rpb25fbmFtZT0lRTUlQTUlQjYlRTclODklOUIlRTQlQkElOTE=

    Postman确认发布分组的API文档

    点击Publish后,可以生成对应的公开的网页地址:

    Postman已发布文档得到公开链接

    打开API接口文档地址:

    https://documenter.getpostman.com/view/669382/collection/77fd4RM

    即可看到(和前面预览一样效果的API文档了):

    Postman已发布的API文档效果

    如此,别人即可查看对应的API接口文档。

    已发布的API文档支持自动更新

    后续如果自己的API接口修改后:

    比如:

    Postman去Edit编辑API

    Postman的API更新编辑Edit Request

    (后来发现,不用再去进入此预览和发布的流程,去更新文档,而是Postman自动支持)

    别人去刷新该文档的页面:

    https://documenter.getpostman.com/view/669382/collection/77fd4RM

    即可看到更新后的内容:

    Postman自动更新了已发布的API文档

    出处: https://crifan.github.io/api_tool_postman/website/postman_api_doc/preview_publish_api_doc.html

    该作者的电子书值得一看,看了涨了不少姿势,对很多知识可以有一个大体的认知

    展开全文
  • C#进阶系列——WebApi 接口测试工具:WebApiTestClient 阅读目录 一、WebApiTestClient介绍 二、WebApiTestClient展示 三、WebApiTestClient使用 1、如何引入组件 2、如何使用组件 四、总结   正文 ...
  • 常见的API接口管理工具

    万次阅读 2018-11-04 22:40:31
    形成的Collection就可以作为一份简单有效且支持在线测试接口文档,使用同一账号登录就可以做到分享同步。对QA来说,使用Postman进行接口测试和接口文档维护是同一件事情,测试即文档,维护成本也很低...
  • 前后端开发需要在开发前期进行接口定义并形成文档,QA在功能测试和接口测试的环节也需要依赖于这些接口文档进行测试接口文档往往以最简单的静态文档的形态存在。然而在紧张的敏捷开发模式下,随着版本迭代,很多...
  • Jenkins API 中文文档

    万次阅读 2018-07-01 18:27:45
    Jenkins API 文档与学习路线图 官方文档 学习路线图 API格式 API在线文档 过滤返回数据 安全 API调试工具 API封装 参考文档 Jenkins API 文档与学习路线图 官方文档 ...整理了Jenkins API 学...
  • 在线接口文档管理工具(小幺鸡)使用说明前言小幺鸡的地址:http://www.xiaoyaoji.cn/几大看点:在线接口测试; 可视化编辑与分享; 代码开源。可以离线部署。
  • API文档规范

    万次阅读 2020-06-07 13:11:45
    后端工程师与前端工程师之间需要接口文档来定义数据传输协议、系统对外暴露接口需要文档来说明、系统之间相互调用需要文档来记录接口协议等等。对于一个完整的项目,接口文档是至关重要的。 接口参数详细信息 接口...
  • 所以api接口文档就变的十分有意义了,目前市场有哪些比较优秀的接口文档管理工具呢? 目录1.MinDoc2.eoLinker3.apizza4.RAML5.其他工具1.Swagger2.Showdoc3.apidoc4.RAP5.APIJSON6.易文档 1.MinDoc MinDoc 是一款...
  • Swagger API接口管理

    万次阅读 2016-12-30 11:25:31
    介绍 Swagger API框架,用于... Swagger包括库、编辑器、代码生成器等很多部分,Swagger UI是一个API在线文档查看和测试的利器,Swagger Editor主要是编写api接口文档,但需要配合Swagger UI来展示,使用yaml编写。
  • RestCloud API接口管理平台

    千次阅读 2018-07-29 22:25:25
     RestCloud API管理平台是完全自主研发的企业级统一API接口管理平台,本平台不但可以从Java代码中的注解自动扫描生成API文档还能通过OpenAPI3.0标准文档、手工等方式导入企业的其他API接口,最终形成企业的统一的...
  • WebApi 压力测试工具 ApaChe-Jmeter

    千次阅读 2018-09-21 00:29:38
    最近在做Asp.net Core Api,做微服务架构,后面会有相关文档介绍现用的架构,今天先记录一下压测工具。ApaChe-Jmeter! 架构大概是linux CentOS + Doker + Kong + Apollo .今天不细讲~~~ Jmeter是一个接口压测工具...
  • 用swagger-ui来生成webapi接口文档并可以在线测试Swagger-UI简单而一目了然。它能够纯碎的基于html+javascript实现,只要稍微整合一下便能成为方便的API在线测试工具。项目的设计架构中一直提倡使用TDD(测试驱动)...
  • 接口文档工具

    千次阅读 2018-03-27 15:51:08
    https://www.showdoc.cc/web/#/item/index
  • webAPI 自动生成帮助文档

    千次阅读 2016-04-24 12:19:03
    之前在项目中有用到webapi对外提供接口,发现在项目中有根据webapi的方法注释自动生成帮助文档,还可以测试webapi方法,功能很是强大,现拿出来与大家分享一下。 先看一下生成的webapi文档。 1、下图展示的...
  • 关于我自己对WebApi的理解是“webapi是基于HTPP构建的服务框架,可以用于搭建基本全部的客户端访问的接口(例如浏览器、APP、智能设备等)” 新建WebApi项目 选择新建asp.net项目,选择WebApi模板,其他默认...
  • Swagger实践总结

    千次阅读 2016-05-12 16:46:00
    Swagger学习实践 最近安装并使用了一下Swagger-ui、Swagger-editorSwagger-...Swagger的目标是对REST API定义一个标准的语言无关的接口,可让人和计算机无需访问源码、文档或网络流量监测就可以发现
  • 没有 Web 接口文档如何进行接口测试

    千次阅读 2019-03-09 23:30:37
    在进行接口测试之前,一般开发会提供接口文档,给出一些接口参数必要熟悉,便于我们编写接口脚本。但如果没有提供接口开发文档的请求下,我们该如何编写接口测试脚本呢?在编写测试脚本前要做哪些必要的准备呢? ...
1 2 3 4 5 ... 20
收藏数 75,936
精华内容 30,374
关键字:

webapi接口文档和在线测试工具