转载地址:http://www.asp.net/web-api/overview/creating-web-apis/creating-api-help-pages

当创建web API 时,经常要创建一个帮助页,以便其他开发人员知道如何调用您的 API。您可以手动创建的所有文档,但最好是尽可能多地自动生成。

为了简化这一任务,ASP.NET Web API 提供一个库自动生成帮助页。

创建 API 帮助页

安装ASP.NET 和 Web 工具 2012.2 的更新。此更新集成到 Web API 项目模板的帮助页面。

接下来,创建一个新的 ASP.NET MVC 4 项目并选择 Web API 项目模板。项目模板创建名为ValuesController的示例 API 控制器。该模板还会创建 API 的帮助页面。所有的帮助页的代码文件都放在项目的区域文件夹。

当您运行该应用程序时,主页页面包含 API 的帮助页面的链接。从主页上,相对路径是 /Help。

此链接为您带到 API 的摘要页。

此页的 MVC 视图是在 Areas/HelpPage/Views/Help/Index.cshtml 中定义的。您可以编辑此页后,可以修改布局、 介绍、 标题、 样式和等等。

该页面的主要部分是一个table布局的控制器的Api。使用IApiExplorer接口条目是动态生成的。(我会稍后再谈谈此接口)。如果您添加一个新的 API 控制器,在运行时自动更新的界面。

"API"列列出了 HTTP 方法和相对 URI。"说明"列中包含每个 API 的文档。最初,该文档是只是占位符文本。在接下来的部分中,我将展示如何从 XML 注释添加文档。

每个 API 已链接到一个网页提供更详细信息,包括示例请求和响应的代码。

将帮助页面添加到现有的项目

通过使用 NuGet 程序包管理器,可以将帮助页面添加现有 Web API 项目。

工具菜单中,选择库程序包管理器,然后选择程序包管理器控制台。在程序包管理器控制台窗口中,键入下列命令之一:

C#应用程序:Install-Package Microsoft.AspNet.WebApi.HelpPage

此命令安装必要的程序集并添加 MVC 视图 (位于Area/HelpPage 文件夹)的帮助页。您需要手动添加到帮助页的链接。URI 是 /Help。要在 razor 视图中创建链接,请添加以下内容:

@Html.ActionLink("API", "Index", "Help", new { area = "" }, null)

此外,还要确保要注册的Area。在 Global.asax 文件中,添加以下代码Application_Start的方法,如果它已不存在:

protected void Application_Start()
{
// Add this code, if not present.
AreaRegistration.RegisterAllAreas(); // ...
}

添加 API 文档

默认情况下,帮助页面有文件的占位符字符串。您可以使用XML 文档注释可以创建的文档。若要启用此功能,请打开 Areas/HelpPage/App_Start/HelpPageConfig.cs 文件和取消注释以下行:

config.SetDocumentationProvider(new XmlDocumentationProvider(
HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));

现在启用 XML 文档。在解决方案资源管理器中,右键单击该项目并选择属性。选择生成的页面。

根据输出,请检查XML 文档文件。在编辑框中,键入"App_Data/XmlDocument.xml"。

接下来,打开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/Products
  • GET /api/Products/{id}
  • POST /api/Products

如果一个控制器动作支持多个 HTTP 方法, ApiExplorer会将每个方法视为不同的 API。

若要隐藏从ApiExplorer的 API,将ApiExplorerSettings属性添加到操作,将IgnoreApi设置为 true。

[ApiExplorerSettings(IgnoreApi=true)]
public HttpResponseMessage Get(int id) { }

也可以将此属性添加到控制器,来排除整个控制器。

ApiExplorer 类从IDocumentationProvider接口获取文档字符串。正如您看到的早些时候,帮助页面库提供了从 XML 文档字符串中获取文件的IDocumentationProvider 。该代码位于 /Areas/HelpPage/XmlDocumentationProvider.cs。通过编写您自己的IDocumentationProvider,可以从另一个源获取文档。若要它捆绑起来,请在HelpPageConfigurationExtensions中定义的SetDocumentationProvider扩展方法

ApiExplorer自动调用IDocumentationProvider接口来获取每个 API 的文档字符串。它将它们存储在文档属性中的ApiDescriptionApiParameterDescription的对象。

为 ASP.NET Web API 创建帮助页面(转载)的更多相关文章

  1. asp.net web api 测试帮助页面建立并测试

    asp.net web api 测试帮助页面建立并测试 现在使用WEB API来开发,越来越流行. 在开发过程中的测试调试,可以使用Fiddler等工具来帮助测试外,还有: 在asp.net 中有种方 ...

  2. Web API 2 入门——创建ASP.NET Web API的帮助页面(谷歌翻译)

    在这篇文章中 创建API帮助页面 将帮助页面添加到现有项目 添加API文档 在敞篷下 下一步 作者:Mike Wasson 创建Web API时,创建帮助页面通常很有用,以便其他开发人员知道如何调用A ...

  3. 使用ASP.NET web API创建REST服务(二)

    Creating a REST service using ASP.NET Web API A service that is created based upon the architecture ...

  4. 使用ASP.NET web API创建REST服务(三)

    本文档来源于:http://www.cnblogs.com/madyina/p/3390773.html Creating a REST service using ASP.NET Web API A ...

  5. ASP.NET Web API 创建帮助页

    1. 安装 Microsoft.AspNet.WebApi.HelpPage 程序包 Install-Package Microsoft.AspNet.WebApi.HelpPage 2. 注册 Ar ...

  6. 为 ASP.NET Web API 创建帮助页

    http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/creating-api-help-pages 以前实例 ...

  7. 【ASP.NET Web API教程】2.4 创建Web API的帮助页面

    原文:[ASP.NET Web API教程]2.4 创建Web API的帮助页面 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. 2.4 ...

  8. 【ASP.NET Web API教程】2.4 创建Web API的帮助页面[转]

    注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. 2.4 Creating a Help Page for a Web API2.4 创建W ...

  9. 入门 ASP.NET Web API 2 (C#)

    入门 ASP.NET Web API 2 (C#) HTTP 不只是为了生成 web 页面.它也是一个强大的建设公开服务和数据 Api的平台. HTTP 的特性:简单. 灵活和无处不在.你能想到的几乎 ...

随机推荐

  1. explicit,violate,volatile,mutable小结

    转自:http://blog.csdn.net/helonsy/article/details/7091130 explicit:放在构造函数前面可以阻止构造函数的隐式类型转换.这样可以避免不必要的错 ...

  2. u-boot 2011.09 调用kernel 的流程

    这段时候我总是觉得有个问题,u-boot 的存在是不是就是为了调用kernel 而存在的. 所以,粗浅的跟了一下这个流程,还有很多细节上的东西没有做好,往指正. u-boot-2011.9 调用内核代 ...

  3. SQL Sever2008r2 数据库服务各种无法启动的解决办法

    一.Sql Server服务远程过程调用失败解决 以前出现过这个问题,那时候是因为把实例安装在了D盘,后来D盘被格式化了.然后,这些就没了.今天早上打开电脑,竟然又出现这个问题,可是Server200 ...

  4. centos 谷歌浏览器安装

    首先,这个是坑 http://www.tecmint.com/install-google-chrome-on-redhat-centos-fedora-linux/ 安装会报错,按照错误找到以下资源 ...

  5. C语言宏定义时#(井号)和##(双井号)的用法

    C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结. 关于#和## 在C语言的宏中,#的功能是将其后面 ...

  6. Strobogrammatic Number

    Strobogrammatic Number I A strobogrammatic number is a number that looks the same when rotated 180 d ...

  7. flume与kafka整合

    flume与kafka整合 前提: flume安装和测试通过,可参考:http://www.cnblogs.com/rwxwsblog/p/5800300.html kafka安装和测试通过,可参考: ...

  8. rabbitMQ中vhost虚拟主机的理解

    每个virtual host本质上都是一个RabbitMQ Server,拥有它自己的queue,exchagne,和bings rule等等.这保证了你可以在多个不同的application中使用R ...

  9. FastReport报表对象介绍一:“Text”对象

    FastReport中文网 http://www.fastreportcn.com/Article/70.html ------------------------------------------ ...

  10. Js注释

    注释 介绍 作用 合作分享:方便他人阅读,便于分享 沉淀总结:容易忘记代码,自己总结沉淀 形式 1.// 双斜杠 2./**/斜杠星号 常用标签 标签 描述 @module 标明当前文件模块,在这个文 ...