我有这个控制器和操作方法:
[ApiController]
[Route("api/[controller]")]
public class AppointmentController : ControllerBase
{
[Route("{provider}/AvailableSlots")]
[HttpGet]
public Task<AvailableSlotsResponse> GetAvailableSlots(Request<AvailableSlotsRequest> request)
{
return null;
}
}
下面是模型:
public class Request<T> where T : class
{
[FromRoute]
public string Provider { get; set; }
[FromQuery(Name = "")]
public T Model { get; set; }
}
public class AvailableSlotsRequest
{
//[FromQuery(Name = "Location")] //Would prefer not to have to use this
public string Location { get; set; }
}
我需要使用<code>Location</code>作为URL中的查询参数名称,以便按预期到达endpoint。
例如< code > http://localhost/API/Appointment/Company/available slots?位置=SYD
然而,当我查看Swagger页面时,该参数被称为<code>Model。位置,这让我的API的消费者感到困惑:
我可以使用< code >[from query(Name = " Location ")]来强制Swagger显示< code>Location,但是这感觉非常多余,并且重复了属性名。
这是我在配置服务()
中设置的Swagger:
services.AddSwaggerDocument(document =>
{
document.PostProcess = d =>
{
d.Info.Version = Configuration["APIVersion"];
d.Info.Title = $"{Configuration["ApplicationName"]} {Configuration["DomainName"]} API";
};
});
如何让Swagger显示< code >位置而不是< code >型号?Location,而不必在< code>[FromQuery]属性中重复单词“Location”?
不幸的是,我不得不使用[FromQuery(Name=“
然而,我找到了一个更好的方法:
[ApiController]
[Route("api/[controller]")]
public class AppointmentController : ControllerBase
{
[Route("{provider}/AvailableSlots")]
[HttpGet]
public Task<AvailableSlotsResponse> GetAvailableSlots(AvailableSlotsRequest request)
{
return null;
}
}
public class Request
{
[FromRoute]
public string ProviderName { get; set; }
}
public class AvailableSlotsRequest : Request
{
[FromQuery]
public string Location { get; set; }
}
这也意味着模型可以使用任何属性,而我第一次尝试用
[FromQuery]
装饰 T 模型
。
将属性[FromRoute]
添加到控制器参数:
public Task<AvailableSlotsResponse> GetAvailableSlots([FromRoute]Request<AvailableSlotsRequest> request)
删除Model属性中的属性<code>FromQuery</code>,并从de Location属性中取消注释属性<code<FromQuery
我们在我们的泽西应用程序中使用了@Role允许注释来限制用户对应用编程接口某些部分的访问。我们如何在SwaggerUI中显示这些信息? 到目前为止,我已经用@ApiOperation注释了方法以显示in/out参数,并尝试使用@Authorization/@AuthorizationScope,但我只为我们不使用的oauth2显示了它。最接近out case的是ApiKeyAuthDefiniti
我使用Mustach和swagger codegen从定义生成模型实体,从操作生成代码(路径部分)。每个操作都指定一个参数列表和其他参数属性-数据类型、描述、默认值、必需、最大值、示例等。 除了'required'属性外,我无法确定如何访问任何参数属性。。。除了“模型”阶段。。。如何在“api”阶段做到这一点。。。我希望能够删除验证参数是否满足“必需”条件的代码,如min/max等。
我有一个java项目(tomcat webapp)和一些REST Api。我想为他们生成大摇大摆的文档。我从本教程(github)开始。我没有maven我们使用蚂蚁任务。我加入了swagger-annotations-1.5.0。jar和所有随swagger jaxrs jar 1.5.0版本附带的jar(如果有用的话,我可以包括一个完整的列表),我已经注释了一些方法,我有一个如下的配置类: }
我成功地在Spring boot应用程序上应用了swagger ui,并能够使用http://localhost:8181/swagger-用户界面。html 过了一段时间,我继续写我的申请,现在它不见了。我没有拿走任何罐子。我添加了一个应用程序启动类,当我在Wildfly 10上部署时,该类用于在启动时加载一些东西。 即使我尝试用tomcat将其作为Spring boot应用程序运行,也无法运行
我们有一个。NET解决方案,有两个项目: null 当将Swagger UI添加到API项目(不是首选解决方案)时,它根本不起作用,可能是因为自定义控制器选择器 然而,我认为我遗漏了一些明显的东西,因为这感觉像是我们遗漏的一个非常基本的配置设置
有没有人用spring-data-rest配置了swagger。我知道swagger有DocumentationConfig类,它扫描所有spring-mvc请求映射。但是,如何将其用于spring-data-rest,因为没有定义显式的请求映射。非常感谢在这方面的任何帮助。此外,我还想知道,是否有其他支持Spring-Data-REST的文档框架。