当使用IHttpActionResult时,我该如何使WebApi2的帮助文档起作用?

14

我希望利用WebApi2和IHttpActionResult的自动化文档功能。因此,我想更改以下代码段:

/// <summary>
/// Gets specified User 
/// </summary>
/// <param name="id">User Id</param>
/// <returns>The user</returns>
public UserModel Get(int id)
{
    UserModel result = new UserModel()
    {
        ErrorLevel = "Warning",
        ErrorMessage = "Not Implemented yet!"
    };
    User u = new User() { Id = 1, ADUserName = "nfindlater", DefaultRoutingGroupId = 1 };
    result.Data = u;

    var helper = new UrlHelper(Request);
    result.Url = helper.Link("User", new { userId = 1 });

    return result;
}
    /// <summary>
    /// Gets specified User 
    /// </summary>
    /// <param name="id">User Id</param>
    /// <returns>The user</returns>
    public IHttpActionResult Get(int id)
    {
        UserModel result = new UserModel()
        {
            ErrorLevel = "Warning",
            ErrorMessage = "Not Implemented yet!"
        };
        User u = new User() { Id = 1, ADUserName = "nfindlater", DefaultRoutingGroupId = 1 };
        result.Data = u;

        var helper = new UrlHelper(Request);
        result.Url = helper.Link("User", new { userId = 1 });

        return Ok<UserModel>(result);
    }

但是,当我这样做时,我会失去自动生成的API文档的一部分,位于 /Help/Api/GET-2013-12-05-user-id。

以下是被遗失的文档部分:

响应主体格式

application/json, text/json 示例:


{ "url": "示例字符串1", "data": { "id": 1, "adUserName": "示例字符串2", "name": "示例字符串3", "defaultRoutingGroupId": 4 }, "errorLevel": "示例字符串2", "errorMessage": "示例字符串3" }
1个回答

33
你可以使用“ResponseType”属性来修饰操作,HelpPage会使用它来生成示例...
示例:[ResponseType(typeof(UserModel)]

4
好的,我会尽力为您提供准确的翻译。只是好奇--你是怎么知道的?所有可能选项的完整列表在哪里可以找到? - user1431072
WebAPI2的源代码可在此处获得(http://aspnetwebstack.codeplex.com/SourceControl/latest),您可以在System.Web.Http项目的Description文件夹中找到ApiDescription功能和ResponseType属性。您可以探索这个来更深入地了解所有的工作原理。 - Dave White

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接