我正在尝试调整自动生成的Swagger定义中使用的模型的“ displayName”。
这只会影响Swagger名称,这意味着代码中的名称空间将保持不变,而从Swagger UI查看模型时,您会看到一个自定义名称。
当前,从代码返回的模型名称是一个命名空间,如下所示:b.c.d.e.f,我想在代码中添加一个属性,并“屏蔽” Swagger文档的名称,以便在生成文档/ Swagger定义时它将显示为CustomSwaggerName。
我有一些API(C#)使用的工具包括Swashbuckle(preferred)和SwaggerGen,但是现在,如果可能的话,我想使它在其中任何一种下工作。
我尝试使用看起来正确的属性:
[ResponseType(typeof(Company)),DisplayName("NewCompany")]
[SwaggerResponse(200,"NewCompany",typeof(object))]
Run Code Online (Sandbox Code Playgroud)
没有运气。我还浏览了SwashBuckle git存储库,希望找到一些东西。
我知道这似乎是一个奇怪的用例,但这是针对为我们的AWS API Gateway自动化编写的工具,该工具将使用Swagger定义进行一些比较。
我正在整理一个需要匹配外部源 XML 格式的 Web API,并希望在 swagger 输出中重命名数据类型对象。
它在类的成员上运行良好,但我想知道是否也可以覆盖类名。
例子:
[DataContract(Name="OVERRIDECLASSNAME")]
public class TestItem
{
[DataMember(Name="OVERRIDETHIS")]
public string toOverride {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
在生成的输出中,我最终看到了模型:
TestItem {
OVERRIDETHIS (string, optional)
}
Run Code Online (Sandbox Code Playgroud)
我希望看到
OVERRIDECLASSNAME { OVERRIDETHIS(字符串,可选)}
这可能吗?
谢谢,
可以生成客户端代码,以便模型的类名具有完整的名称空间作为前缀?
那应该避免相同的类名冲突。
例
com.foo.MyClass
Run Code Online (Sandbox Code Playgroud)
和
it.foo.MyClass
Run Code Online (Sandbox Code Playgroud)
到现在我得到的是MyClass和MyClass2这与其说是有意义的。
应该是最好有,在名称冲突的情况下,ComFooMyClass和ItFooMyClass。