问题标签 [asp.net-mvc-apiexplorer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4927 浏览

c# - WebAPI ApiExplorer 帮助页面参数 附加信息

我正在使用 MVC4 WebAPI 并且有一些问题;

  1. 我们如何定义参数页面[附加信息]的“内容”??
    默认情况下,此状态为“在请求正文中定义此参数”??

  2. 我们如何在参数页面[示例]上定义示例数据??
    例如,假设一个字符串值应该是“COME”或“GO”,我怎样才能在帮助页面上得到说明,而不是获取它们的默认“字符串”值?

  3. 哪里是放置一些约束的正确位置,例如预期的标头值或 API 将产生的可能的响应/错误,以便它出现在帮助页面上?

0 投票
2 回答
6009 浏览

c# - WebAPI 帮助页面 - 返回或参数模型/类属性的文档

我正在使用带有 Web API 2 (5.0) 的 Web API 帮助页面——这两个都是最新的 Nuget 包。我希望帮助文档显示对作为参数或在 HttpResponseMessage 正文中返回的类的属性的注释。

例如,我有一个这样的控制器方法:

我希望我拥有的 XML 评论MyClassType1显示MyClassType2在上述发布操作的帮助页面上。

我看过的所有地方,到目前为止似乎还不支持。但是,我想知道是否有人能够通过扩展 ApiExplorer、添加到 XmlDocumentationProvider 等来使其工作?

我知道注释和属性包含在生成的 XML 文件中,所以我可以尝试手动解析(所有参数和返回类型都在MyAssemblyName.Models命名空间中,所以我的想法是我可以查找具有一个以该命名空间开头的成员名称。但是,我知道内置的 Web API 帮助页面有一些缓存功能,所以我更喜欢以某种方式将其与现有功能结合起来(只需添加它)。

通过将 Parameters.cshtml 模板更新为此,我设法显示了参数的类型(仅向下一层):

上述GetFriendlyTypeName()方法的实现如下所示:如何使用反射获得泛型类型的正确文本定义?

但是,这并没有让我得到这些类的注释,并且它对嵌套类型没有帮助(例如,如果我的模型上有一个复杂类型的属性,它将不会显示该复杂类型属性的属性)。无论如何,如果没有 XML 注释,这些类型就不够用了。

此外,这仅适用于参数,但不适用于 HttpResponseMessage 正文中包含的返回类型。ResponseTypeAttribute通过实现如下所示,我能够使响应示例正常工作:自动生成返回类型为 HttpResponseMessage 的帮助页面,但同样没有为我提供带有 XML 注释的属性。我可以使用反射来获取类型,类似于我再次获取参数类型的方式,但我真的希望 XML 注释与类型一起,包括嵌套的复杂类型。

我还发现将模型/类文档(具有类型和 XML 注释的属性)与服务调用分开记录是可以接受的,并且让服务调用只显示它们返回的类型的名称(然后至少用户可以找到该类型的文档)。

有没有人能够实现类似于我试图为参数或返回类型做的事情,最好是两者?或者有什么想法可以为我指明正确的方向?

0 投票
3 回答
3368 浏览

asp.net-mvc - 具有基于命名空间的 ApiControllers 的自定义 ApiExplorer

我正在尝试在我的后端系统中添加 API 文档。默认 ApiExplorer 和帮助页面在我将版本引入我的 Api 控制器之前工作得非常好。

为了添加版本,我在 Controllers 文件夹下创建了子文件夹:

  • v1
  • v2
  • v3

并在那里有基于版本的 Api 控制器。为了让我的 Api 可被发现,我必须重写 DefaultHttpControllerSelector 以考虑任何客户端提供的命名空间并将它们映射到正确的控制器:

这破坏了我的默认 ApiExplorer,以下属性返回零 api 描述

如何自定义现有的 ApiExplorer 并帮助他找到我的 Api 控制器而不是重写整个 ApiExplorer 实现。我真的只需要显示在哪里可以找到我的 Api 控制器。

请指教。

0 投票
1 回答
1022 浏览

ajax - 使用 apiController 和 angular 删除多个记录

如何使用 apiController 和 angular 删除多个记录?

我试过以下。但我没有成功

api控制器:

阿贾克斯方法:

删除记录正常工作。要删除多条记录,会出现以下错误:

0 投票
1 回答
595 浏览

c# - ASP.NET WebAPI - 如何扫描已注册的操作

我的 WebApi 中有几种返回 HttpResponseMessage 的方法。由于响应类型未知,我必须使用类似的方法在 HelpPageConfig 中注册它们

config.SetActualResponseType(typeof(X), "SomeController", "GetX");

我想使用[ActualResponse(typeof(X)]声明控制器的自定义属性来注册这些,以避免创建一个大型注册表对象,该对象引用了一个有点混乱的列表中的所有内容。

如何查询配置以获取已注册控制器和操作及其属性的列表,以便我可以自动调用 SetActualResponseType?

0 投票
0 回答
1294 浏览

c# - Web Api 2 help documentation generator

I have installed Microsoft.AspNet.WebApi.HelpPage to my web api 2 project and can successfully output the /help pages.

One thing i cant seem to get going however is getting it to generate the xml comment documentation i have added to classes that are referenced in a separate project. So for instance my web api controller comments all appear fine. However in project x that is referenced in the web api project i have classes that have XML documentation applied but none of these appear in the /help files.

I know i can set the web api xml document file to be referenced in HelpPageConfig.cs

How can i get the generator to pick up XML files from other referenced projects as well or this is a current limitation of the api explorer tool?

Thanks

0 投票
1 回答
323 浏览

asp.net-web-api - WebApi: ApiExplorer and Custom ModelBinders

Most of my api routes are segmented like so:

/api/{segment}/MyEntity (i.e. "/api/SegmentA/MyEntity")

Where I've defined a ModelBinder that converts from the string to a Segment object like so:

Configured as:

So my routes end up looking like this:

The problem is, I'm now attempting to generate documentation for these Api calls, and ApiExplorer is completely confused by these routes and ignores them.

How do I tell it that for these routes, when it sees a parameter of type Segment, it's really just a string from the route?

0 投票
4 回答
4756 浏览

c# - 为主体参数生成描述字段

所以我一直在谷歌上搜索很多东西来尝试解决这个问题,但我似乎找不到任何东西。请参阅图片以供参考,但我正在尝试填写主体参数的描述字段。做这个的最好方式是什么?

缺少body参数说明

0 投票
1 回答
1638 浏览

c# - 用于外部程序集中 WebAPI 控制器的 ApiExplorer

我的 WebApi 控制器位于程序集中(自托管 OWIN 应用程序或 ASP MVC 应用程序)。是否可以使用 ApiExplorer 形成另一个应用程序(动态加载带有 WebApi 控制器的程序集)来生成 Web API 文档?

0 投票
1 回答
1265 浏览

c# - 状态代码为 200,但在对 MVC Web API 的 ajax 调用中仍会触发错误事件

我正在使用 [FromBody] 在基于 MVC 的 Web api 上发布一些字符串,这工作正常。数据正在添加到数据库中。我的控制器的 Action 方法类型是 HttpResponseMessage,我正在返回这个响应

但错误事件正在触发而不是成功。

这是ajax调用。

建议我解决这个问题。