本篇文章给大家谈谈api自动生成在线文档,以及java直接生成api文档工具对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享api自动生成在线文档的知识,其中也会对java直接生成api文档工具进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
如何使 WebAPI 自动生成漂亮又实用在线API文档
1.1 SwaggerUI
SwaggerUI 是一个简单的Restful API 测试和文档工具。简单、漂亮、易用(官方demo)。通过读取JSON 配置显示API. 项目本身仅仅也只依赖一些 html,css.js静态文件. 你可以几乎放在任何Web容器上使用。
1.2 Swashbuckle
Swashbuckle 是.NET类库,可以将WebAPI所有开放的控制器方法生成对应SwaggerUI的JSON配置。再通过SwaggerUI 显示出来。类库中已经包含SwaggerUI 。所以不需要额外安装。
2.快速开始
创建项目 OnlineAPI来封装百度音乐服务(示例下载) ,通过API可以搜索、获取音乐的信息和播放连接。
我尽量
删除一些我们demo中不会用到的一些文件,使其看上去比较简洁。
WebAPI 安装 Swashbuckle
Install-Package Swashbuckle
代码注释生成文档说明。
Swashbuckle 是通过生成的XML文件来读取注释的,生成 SwaggerUI,JSON 配置中的说明的。
安装时会在项目目录 App_Start 文件夹下生成一个 SwaggerConfig.cs 配置文件,用于配置 SwaggerUI 相关展示行为的。如图:
将配置文件大概99行注释去掉并修改为
c.IncludeXmlComments(GetXmlCommentsPath(thisAssembly.GetName().Name));
并在当前类中添加一个方法
/// <summary
/// </summary
/// <param name="name"</param
/// <returns</returns
protected static string GetXmlCommentsPath(string name)
{
return string.Format(@"{0}\bin\{1}.XML", AppDomain.CurrentDomain.BaseDirectory, name);
}
紧接着你在此Web项目属性生成选卡中勾选 “XML 文档文件”,编译过程中生成类库的注释文件
添加百度音乐 3个API
访问 lt;youhost/swagger/ui/index,最终显示效果
我们通过API 测试API 是否成功运行
3.添加自定义HTTP Header
在开发移动端 API时常常需要验证权限,验证参数放在Http请求头中是再好不过了。WebAPI配合过滤器验证权限即可
首先我们需要创建一个 IOperationFilter 接口的类。IOperationFilter
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Http.Description;
using System.Web.Http.Filters;
using Swashbuckle.Swagger;
namespace OnlineAPI.Utility
{
public class HttpHeaderFilter : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry
schemaRegistry, ApiDescription apiDescription)
{
if (operation.parameters == null) operation.parameters = new
List<Parameter();
var filterPipeline =
apiDescription.ActionDescriptor.GetFilterPipeline();
//判断是否添加权限过滤器
var isAuthorized = filterPipeline.Select(filterInfo =
filterInfo.Instance).Any(filter = filter is IAuthorizationFilter);
//判断是否允许匿名方法
var allowAnonymous =
apiDescription.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute().Any();
if (isAuthorized !allowAnonymous)
{
operation.parameters.Add(new Parameter
{
name = "access-key",
@in = "header",
description = "用户访问Key",
required = false,
type = "string"
});
}
}
}
}
在 SwaggerConfig.cs 的 EnableSwagger 配置匿名方法类添加一行注册代码
c.OperationFilter<HttpHeaderFilter();
添加Web权限过滤器
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Web;
using System.Web.Http;
using System.Web.Http.Controllers;
using Newtonsoft.Json;
namespace OnlineAPI.Utility
{
/// <summary
///
/// </summary
public class AccessKeyAttribute : AuthorizeAttribute
{
/// <summary
/// 权限验证
/// </summary
/// <param name="actionContext"</param
/// <returns</returns
protected override bool IsAuthorized(HttpActionContext actionContext)
{
var request = actionContext.Request;
if (request.Headers.Contains("access-key"))
{
var accessKey = request.Headers.GetValues("access-key").SingleOrDefault();
//TODO 验证Key
return accessKey == "123456789";
}
return false;
}
/// <summary
/// 处理未授权的请求
/// </summary
/// <param name="actionContext"</param
protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
{
var content = JsonConvert.SerializeObject(new {State = HttpStatusCode.Unauthorized});
actionContext.Response = new HttpResponseMessage
{
Content = new StringContent(content, Encoding.UTF8, "application/json"),
StatusCode = HttpStatusCode.Unauthorized
};
}
}
}
在你想要的ApiController 或者是 Action 添加过滤器
[AccessKey]
最终显示效果
4.显示上传文件参数
SwaggerUI 有上传文件的功能和添加自定义HTTP Header 做法类似,只是我们通过特殊的设置来标示API具有上传文件的功能
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http.Description;
using Swashbuckle.Swagger;
namespace OnlineAPI.Utility
{
/// <summary
///
/// </summary
public class UploadFilter : IOperationFilter
{
/// <summary
/// 文件上传
/// </summary
/// <param name="operation"</param
/// <param name="schemaRegistry"</param
/// <param name="apiDescription"</param
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
if (!string.IsNullOrWhiteSpace(operation.summary) operation.summary.Contains("upload"))
{
operation.consumes.Add("application/form-data");
operation.parameters.Add(new Parameter
{
name = "file",
@in = "formData",
required = true,
type = "file"
});
}
}
}
}
在 SwaggerConfig.cs 的 EnableSwagger 配置匿名方法类添加一行注册代码
c.OperationFilter<UploadFilter();
API 文档展示效果
Wisdom Tool REST Client可以自动化测试RESTful API,可以大幅度提高接口开发及测试的工作效率。
方法/步骤
在开源社区Github上下载REST Client工具,restclient-1.0.jar
双击jar包,或者运行命令java -jar restclient-1.0.jar。这时会显示出工具的主界面。
在工具Request选项栏里添加RESTful API接口的请求信息,如URL,HTTP Method,Body,Header,Cookie等信息。
点击【Start】按钮,执行HTTP请求。请求结束会自动跳转至Response选项栏,得到完整的Response信息。
选择History选项栏,这里会记录RESTful API的请求和响应等记录信息。
在Test菜单栏里运行【Start Test】,此时会自动执行列表里记录的所有API。自动化测试这些API。
API执行完毕工具会在默认浏览器里打开自动化测试报告。
使用中遇到问题可以Email联系作者,或者在Help菜单里点击【Help Contents】选项,查看帮助文档。
如何使用javadoc命令生成api文档,文档注释
使用javadoc命令生成api文档:
创建java源文件包。java文件都是存放在一个package包中,这样方便对java文件进行操作和区分,首先在磁盘上创建文件夹一样的方式创建package包。
创建java源文件。在包下,创建与文件名相同的java源文件,输入一些文档注释,这些文档注释用于自动的api文件进行说明使用。
进入java源文件目录。通过cd等windows命令进入java源文件包所在的磁盘位置。
查看javadoc命令使用说明。如果是第一次使用javadoc命令,可以通过javadoc -help命令查看javadoc使用说明。
开始创建api文件。使用命令输入javadoc -d javaapi -header 测试的API -doctitle 这是我的第一个文档注释 -version -author javadoc/Hello.java 进行文档生成。-d:文件存储位置; -head:文件头部名称; -version:显示版本; -author:显示作者; javadoc/Hello.java 处理的文件包以及java源文件。
查看生成的api文件。创建成功之后,就会自动创建指定的文件夹下生成api文件。打开index.html就是api文件的入口。
Python API文档生成记录
我是一个程序员,文档是个很头疼的东东。一直在找一个对于自己来说好用一些的生成文档的工具,前一阵找到了Markdown,相当不错的写作工具,最近一直在使用。最近公司要求生成内部API文档,写起来很麻烦,特别是生成word文档,需要的各种格式调整,费时费力。我使用Markdown写了一个版本,但是其他人都用word写的,无法整合,于是我在网上不停的寻找,终于让我找到了,Justmd + Markdown + Python + Mkdocs , 这个组合,简直是无与伦比啊。
简单的说明一下:
安装完上述工具后就可以使用Markdown工具进行写作了,根据需要可以写多个Markdown文档,统一写完后,放在同一个目录下面。
然后在命令行中生成Mkdocs目录
上面是2个主题的效果图。
然后在浏览器中访问 就可以看到相应的文档了。
基本介绍就到这里了,如果有任何问题,可以给我留言大家一起学习。
后记:
Mkdocs还可以生成静态页面,命令如下:
生成 的静态页面在同目录下:site文件夹
如何生成RestFul Api文档
Web API文档工具列表
Swagger ——Swagger框架可以通过代码生成漂亮的在线API,甚至可以提供运行示例。支持Scala、Java、Javascript、Ruby、PHP甚至 Actionscript 3。在线 Demo 。
I/O Docs ——I/O Docs是一个用于RESTful Web APIs的交互式文档系统。使用 JSON 模型根据资源、方法和参数定义 APIs。I/O Docs 将生成 JavaScript 客户端接口,可通过这些接口来调用系统。服务器端基于 Node.js 开发。在线Demo
apiary.io ——能够快速启动和运行文档,包括GitHub集成和I/O验证——更多建议可以前往Reddit查看上关于 Siyfion讨论。
Docco ——Docco是一个快速而随意、hundred-line-long、迭代程序风格的文档生成器。它会以HTML的方式显示评论和代码。
Dexy ——非常灵活的一款文档工具,支持任何语言编写的API。
Doxygen ——Doxgen可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。对于未归档的源文件,也可以通过配置Doxygen来提取代码结构。 更多建议可以前往Reddi上查看 gkumar007相关讨论。
TurnAPI ——是一款付费的文档API工具。里面包含了智能WIKI编辑器、基于标准的Markdown、文档分支、还可以与Git、SVN、Mercurial同步、整洁的主题、友好的界面。
以上仅是作者在实践中发现的一些很好的工具,如果你有更好的建议或工具推荐,欢迎与我们分享。
如何生成api文档,初学者请不吝赐教
(1) 首先要理解,什么是Android,如果读者通过本书的第一章学习初步了解了 Android,若想进一步学习和了解,建议仔细阅读这个文档中的 “What is Android”。
(2) 阅读 “Anatomy of an Android Application” 能够知道一个 Android 应用中到底都有些什么东西,如果你读完这个文档还不是很清楚的话也没有关系,本书第6章会详细介绍 Android 的组成部分和各个部分所扮演的角色。
(3) 接着可以读一下,“Development Tools”一节的内容,其中会介绍 SDK 中包含的一些工具及工具的作用,但是其介绍的比较简单,我们后面会详细讲解各个工具的作用。
关于api自动生成在线文档和java直接生成api文档工具的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
api自动生成在线文档的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java直接生成api文档工具、api自动生成在线文档的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。