问题标签 [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.
c# - WebAPI ApiExplorer 帮助页面参数 附加信息
我正在使用 MVC4 WebAPI 并且有一些问题;
我们如何定义参数页面[附加信息]的“内容”??
默认情况下,此状态为“在请求正文中定义此参数”??我们如何在参数页面[示例]上定义示例数据??
例如,假设一个字符串值应该是“COME”或“GO”,我怎样才能在帮助页面上得到说明,而不是获取它们的默认“字符串”值?哪里是放置一些约束的正确位置,例如预期的标头值或 API 将产生的可能的响应/错误,以便它出现在帮助页面上?
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 注释的属性)与服务调用分开记录是可以接受的,并且让服务调用只显示它们返回的类型的名称(然后至少用户可以找到该类型的文档)。
有没有人能够实现类似于我试图为参数或返回类型做的事情,最好是两者?或者有什么想法可以为我指明正确的方向?
asp.net-mvc - 具有基于命名空间的 ApiControllers 的自定义 ApiExplorer
我正在尝试在我的后端系统中添加 API 文档。默认 ApiExplorer 和帮助页面在我将版本引入我的 Api 控制器之前工作得非常好。
为了添加版本,我在 Controllers 文件夹下创建了子文件夹:
- v1
- v2
- v3
并在那里有基于版本的 Api 控制器。为了让我的 Api 可被发现,我必须重写 DefaultHttpControllerSelector 以考虑任何客户端提供的命名空间并将它们映射到正确的控制器:
这破坏了我的默认 ApiExplorer,以下属性返回零 api 描述
如何自定义现有的 ApiExplorer 并帮助他找到我的 Api 控制器而不是重写整个 ApiExplorer 实现。我真的只需要显示在哪里可以找到我的 Api 控制器。
请指教。
ajax - 使用 apiController 和 angular 删除多个记录
如何使用 apiController 和 angular 删除多个记录?
我试过以下。但我没有成功
api控制器:
阿贾克斯方法:
删除记录正常工作。要删除多条记录,会出现以下错误:
c# - ASP.NET WebAPI - 如何扫描已注册的操作
我的 WebApi 中有几种返回 HttpResponseMessage 的方法。由于响应类型未知,我必须使用类似的方法在 HelpPageConfig 中注册它们
config.SetActualResponseType(typeof(X), "SomeController", "GetX");
我想使用[ActualResponse(typeof(X)]
声明控制器的自定义属性来注册这些,以避免创建一个大型注册表对象,该对象引用了一个有点混乱的列表中的所有内容。
如何查询配置以获取已注册控制器和操作及其属性的列表,以便我可以自动调用 SetActualResponseType?
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
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?
c# - 用于外部程序集中 WebAPI 控制器的 ApiExplorer
我的 WebApi 控制器位于程序集中(自托管 OWIN 应用程序或 ASP MVC 应用程序)。是否可以使用 ApiExplorer 形成另一个应用程序(动态加载带有 WebApi 控制器的程序集)来生成 Web API 文档?
c# - 状态代码为 200,但在对 MVC Web API 的 ajax 调用中仍会触发错误事件
我正在使用 [FromBody] 在基于 MVC 的 Web api 上发布一些字符串,这工作正常。数据正在添加到数据库中。我的控制器的 Action 方法类型是 HttpResponseMessage,我正在返回这个响应
但错误事件正在触发而不是成功。
这是ajax调用。
建议我解决这个问题。