Web API 2 入门——创建ASP.NET Web API的帮助页面(谷歌翻译)
在这篇文章中
作者:Mike Wasson
创建Web API时,创建帮助页面通常很有用,以便其他开发人员知道如何调用API。您可以手动创建所有文档,但最好尽可能自动生成。
为了简化此任务,ASP.NET Web API提供了一个用于在运行时自动生成帮助页面的库。
创建API帮助页面
安装ASP.NET和Web Tools 2012.2更新。此更新将帮助页面集成到Web API项目模板中。
接下来,创建一个新的ASP.NET MVC 4项目并选择Web API项目模板。项目模板创建一个名为API的例子ValuesController
。该模板还创建API帮助页面。帮助页面的所有代码文件都放在项目的区域文件夹中。
运行应用程序时,主页包含指向API帮助页面的链接。在主页上,相对路径为/ Help。
此链接将带您进入API摘要页面。
该页面的MVC视图在Areas / HelpPage / Views / Help / Index.cshtml中定义。您可以编辑此页面来修改布局,介绍,标题,样式等。
页面的主要部分是由控制器分组的API表格。使用IApiExplorer接口动态生成表条目。(稍后我会再谈谈这个界面。)如果添加了一个新的API控制器,表将在运行时自动更新。
“API”列列出了HTTP方法和相对URI。“说明”列包含每个API的文档。最初,文档只是占位符文本。在下一节中,我将介绍如何从XML注释中添加文档。
每个API都有一个包含更详细信息的页面的链接,包括示例请求和响应实体。
将帮助页面添加到现有项目
您可以使用NuGet软件包管理器将帮助页面添加到现有的Web API项目。从“Web API”模板的不同项目模板开始,此选项很有用。
从工具菜单中,选择库包管理器,然后选择包管理器控制台。在“ 管理器管理器”窗口中,键入以下命令之一:
对于C#应用程序:Install-Package Microsoft.AspNet.WebApi.HelpPage
对于Visual Basic应用程序:Install-Package Microsoft.AspNet.WebApi.HelpPage.VB
有两个包,一个用于C#,一个用于Visual Basic。确保使用与您的项目匹配的。
此命令安装必要的程序集,并为帮助页面(位于Areas / HelpPage文件夹中)添加MVC视图。您需要手动添加一个链接到帮助页面。URI是/ Help。要在剃刀视图中创建链接,请添加以下内容:
@Html.ActionLink("API", "Index", "Help", new { area = "" }, null)
另外,请务必注册区域。在Global.asax文件中,将以下代码添加到Application_Start方法中(如果还没有):
protected void Application_Start()
{
// Add this code, if not present.
AreaRegistration.RegisterAllAreas();
// ...
}
添加API文档
默认情况下,帮助页面具有用于文档的占位符字符串。您可以使用XML文档注释来创建文档。要启用此功能,请打开文件区域/ HelpPage / App_Start / HelpPageConfig.cs并取消注释以下行:
config.SetDocumentationProvider(new XmlDocumentationProvider(
HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));
现在启用XML文档。在解决方案资源管理器中,右键单击项目并选择属性。选择构建页面。
在输出下,检查XML文档文件。在编辑框中,键入“App_Data / XmlDocument.xml”。1
接下来,打开ValuesController
API控制器的代码,该控件在/Controllers/ValuesControler.cs中定义。向控制器方法添加一些文档注释。例如:
/// <summary>
/// Gets some very important data from the server.
/// </summary>
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
/// <summary>
/// Looks up some data by ID.
/// </summary>
/// <param name="id">The ID of the data.</param>
public string Get(int id)
{
return "value";
}
注意
提示:如果将插入符号放置在方法上方,并键入三个正斜杠,Visual Studio将自动插入XML元素。然后你可以填写空白。
现在再次构建和运行应用程序,并导航到帮助页面。文档字符串应显示在API表中。
帮助页面在运行时从XML文件读取字符串。(部署应用程序时,请确保部署XML文件。)
在敞篷下
帮助页面建立在ApiExplorer类之上,该类是Web API框架的一部分。该ApiExplorer类提供的原料,用于创建一个帮助页面。对于每个API,ApiExplorer包含一个描述API 的ApiDescription。为此,将“API”定义为HTTP方法和相对URI的组合。例如,这里有一些不同的API:
- GET / api /产品
- GET / api / Products / {id}
- POST / api /产品
如果控制器操作支持多种HTTP方法,则ApiExplorer将每个方法视为不同的API。
要从ApiExplorer中隐藏API ,请将ApiExplorerSettings属性添加到操作中,并将IgnoreApi设置为true。
[ApiExplorerSettings(IgnoreApi=true)]
public HttpResponseMessage Get(int id) { }
您也可以将此属性添加到控制器,以排除整个控制器。
ApiExplorer类从IDocumentationProvider接口获取文档字符串。如前所述,帮助页面库提供了一个IDocumentationProvider,它从XML文档字符串中获取文档。代码位于/Areas/HelpPage/XmlDocumentationProvider.cs中。您可以通过编写自己的IDocumentationProvider从其他来源获取文档。要连接它,调用SetDocumentationProvider扩展方法,在HelpPageConfigurationExtensions中定义
ApiExplorer自动调用IDocumentationProvider接口获取每个API的文档字符串。它将它们存储在ApiDescription和ApiParameterDescription对象的Documentation属性中。
Web API 2 入门——创建ASP.NET Web API的帮助页面(谷歌翻译)的更多相关文章
- Web API 2 入门——使用ASP.NET Web API和Angular.js构建单页应用程序(SPA)(谷歌翻译)
在这篇文章中 概观 演习 概要 由网络营 下载网络营训练包 在传统的Web应用程序中,客户机(浏览器)通过请求页面启动与服务器的通信.然后,服务器处理请求,并将页面的HTML发送给客户端.在与页面的后 ...
- 【ASP.NET Web API教程】1 ASP.NET Web API入门
原文 [ASP.NET Web API教程]1 ASP.NET Web API入门 Getting Started with ASP.NET Web API第1章 ASP.NET Web API入门 ...
- 在 Visual Studio 2013 中创建 ASP.NET Web 项目(0):专题导航 [持续更新中]
写在前面的话 随着 Visual Studio 2013 的正式推出,ASP.NET 和 Visual Studio Web 开发工具 也发布了各自的最新版本. 新版本在构建 One ASP.NET ...
- 在 Visual Studio 2013 中创建 ASP.NET Web 项目(1):概述 - 创建 Web 应用程序项目
注:本文是“在 Visual Studio 2013 中创建 ASP.NET Web 项目”专题的一部分,详情参见 专题导航 . 预备知识 本专题适用于 Visual Studio 2013 及以上版 ...
- 如何在 Azure 中创建 ASP.NET Web 应用
Azure Web 应用提供高度可缩放.自修补的 Web 托管服务. 本快速入门演示如何将第一个 ASP.NET Web 应用部署到 Azure Web 应用中. 完成后,便拥有了一个资源组,该资源组 ...
- 【转载】在 Visual Studio 2012 中创建 ASP.Net Web Service
在 Visual Studio 2012 中创建 ASP.Net Web Service,步骤非常简单.如下: 第一步:创建一个“ASP.Net Empty Web Application”项目 创建 ...
- Visual Studio 2010中创建ASP.Net Web Service
转自:http://blog.csdn.net/xinyaping/article/details/7331375 很多人在论坛里说,在Visual Studio 2010中不能创建“ASP.Net ...
- (转)在 Visual Studio 2010 中创建 ASP.Net Web Service
很多人在论坛里说,在Visual Studio 2010中不能创建“ASP.Net Web Service”这种project了,下面跟帖者云云,有的说这是因为微软已经将Web Service整合进W ...
- Announcing the Release of ASP.NET MVC 5.1, ASP.NET Web API 2.1 and ASP.NET Web Pages 3.1 for VS2012
The NuGet packages for ASP.NET MVC 5.1, ASP.NET Web API 2.1 and ASP.NET Web Pages 3.1 are now live o ...
随机推荐
- 20164324王启元 Exp4恶意代码分析
一.实验要求 1.系统运行监控 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一段时间并分析该文件,综述一下分析结果. 安装配置sysinternals里的sys ...
- 加载 Firefox 配置
有小伙伴在用脚本启动浏览器时候发现原来下载的插件不见了,无法用 firebug在打开的页面上继续定位页面元素,调试起来不方便 .加载浏览器配置,需要用 FirefoxProfile(profile_d ...
- Java String StringBuilder StringBuffer
String是字符串常量 StringBuilder和StringBuffer都是字符串变量 速度方面:StringBuilder > StringBuffer > String 每当用S ...
- MariaDB10.2修改默认密码
1.修改 my.ini,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2.重启 mysqld 服务 3.使用 roo ...
- Linux 信号signal处理函数--转
alarm(设置信号传送闹钟)相关函数 signal,sleep 表头文件 #include<unistd.h> 定义函数 unsigned int alarm(unsigned int ...
- 【AAA】AAA协议介绍
AAA AAA简介 AAA是认证(Authentication).授权(Authorization)和计费(Accounting)的简称,是网络安全中进行访问控制的一种安全管理机制,提供认证.授权和计 ...
- [springBoot系列]--spring-boot-devtools在Idea中热部署方法
1 pom.xml文件 注:热部署功能spring-boot-1.3开始有的 <!--添加依赖--> <dependency> <groupId>org.sprin ...
- 8、springboot之定时任务
@Configuration @EnableScheduling public class SchedulingConfig { @Scheduled(cron = "0/5 * * * * ...
- 【转】js判断一个object对象是否为空
判断一个对象是否为空对象,本文给出三种判断方法: 1.最常见的思路,for...in... 遍历属性,为真则为“非空数组”:否则为“空数组” for (var i in obj) { // 如果不为空 ...
- JavaEE之servlet相关技术
相关技术:为了灵活实现的不同路径(/hello)执行不同的资源( HeIIoMyServlet)我们需要使用XML进行配置;为了限定XML内容,我们需要使用xml约束(DTD或schema);为了获得 ...