servicestack ServiceStack+;招摇过市UI[Api]属性用法,servicestack,swagger,swagger-ui,servicestack,Swagger,Swagger Ui" /> servicestack ServiceStack+;招摇过市UI[Api]属性用法,servicestack,swagger,swagger-ui,servicestack,Swagger,Swagger Ui" />

servicestack ServiceStack+;招摇过市UI[Api]属性用法

servicestack ServiceStack+;招摇过市UI[Api]属性用法,servicestack,swagger,swagger-ui,servicestack,Swagger,Swagger Ui,我一定是疯了,但我不知道[Api]属性的用法到底有什么用 不标记[Api]似乎不会影响Api是否以虚张声势的方式出现,我在任何地方都找不到像[Api(“服务描述”)这样的描述 我的用法如下: [Api("Monkey Service Description")] [Route("/zoo/monkey/{Id}", "GET", Summary = "Get MonkeyDocument by Id", Notes = "Returns a MonkeyDocument based on Id"

我一定是疯了,但我不知道[Api]属性的用法到底有什么用

不标记[Api]似乎不会影响Api是否以虚张声势的方式出现,我在任何地方都找不到像[Api(“服务描述”)这样的描述

我的用法如下:

[Api("Monkey Service Description")]
[Route("/zoo/monkey/{Id}", "GET", Summary = "Get MonkeyDocument by Id", Notes = "Returns a MonkeyDocument based on Id")]
public class GetMonkey : GetAnimal, IReturn<MonkeyDocument> // GetAnimal Has Id property
{
}

ApiAttribute
不再用于任何与招摇相关的功能中。我所能找到的唯一的用法是关于

使用
RouteAttribute
来描述服务端点是大摇大摆地记录路由的正确方法。您可以浏览和的源代码,了解更多关于哪些属性等可用于在Swagger中记录API的信息

编辑 实际上,正如注释中提到的,ApiAttribute
Description
值正在返回给Swagger UI客户端。e、 g.从初始资源请求返回的JSON如下所示:

{
  "swaggerVersion":"1.1",
  "basePath":"http://localhost/api",
  "apis":[
     {"path":"/resource/zoo","description":"Monkey Service Description"}, ...
  ]
}
这个特定的
description
值与
Route
属性描述值是分开的,属性描述值在Swagger UI中呈现,并从单独的Ajax请求返回。
ApiAttribute
描述值虽然返回到Swagger UI客户端并存储在Swagger.js中的
SwaggerResource
对象中,但似乎不会以任何方式显示在屏幕上。至少使用ServiceStack使用的当前版本的Swagger

下面是一个屏幕截图,显示了如何在给定DTO的元数据页面上使用Api和路由属性。我为同一DTO类设置了两条路由以显示差异:


元数据和招摇是统一的。SwaggerResourcesService.cs从ServiceMetadata.cs调用GetDescription。我可以看到我的描述被呈现到来自Swagger Resources服务的json结果中,看不到它在呈现到页面时如何影响Swagger UI中的任何内容,因此我不确定其目的。谢谢esker,这也是我得出的结论,但是它在哪里/如何使用?它肯定有一些优势,否则我不明白为什么Mythz会将它添加到ServiceStack中。他真是个聪明人:)我添加了一个屏幕截图,显示了Api和路由属性在元数据页面上的不同使用方式。基本上,Api属性提供比Route属性更高级别的描述。
{
  "swaggerVersion":"1.1",
  "basePath":"http://localhost/api",
  "apis":[
     {"path":"/resource/zoo","description":"Monkey Service Description"}, ...
  ]
}