如何解决ServiceStack Swagger/Openapi ->POST/PUT 文档
我们使用 ServiceStack 5.11 并启用 Swagger/OpenApi 版本。为 POST 生成的文档显示了一个正确的模型,我可以单击它并显示在正文中。那很好。但是模型也作为查询参数生成。我怎样才能禁用它们?换句话说:如何禁用带有输入字段和参数类型查询的行?为什么会自动生成这个?它是否也应该如此并有效?
模型片段:
[Route("/json/reply/Address","POST",Summary = "update/insert address",Notes = "update/insert address data")]
[DataContract]
public class Address
{
[DataMember]
public DtoIdentifier DtoId { get; set; }
[DataMember]
public DtoIdentifier TypeCountryId { get; set; }
[DataMember]
public string Street { get; set; }
[DataMember]
public string HouseNumber { get; set; }
[DataMember]
public string Floor { get; set; }
解决方法
除了 HTTP 请求正文之外,ServiceStack Service 还可以从 HTTP 请求的路径信息、查询字符串、FormData 和标头中进一步填充其请求 DTO。
您可以自定义使用 Open API Filters 返回的 Open API Schema,例如使用您可以使用的请求正文从 API 请求中删除所有 query 参数:
Plugins.Add(new OpenApiFeature {
OperationFilter = (action,op) => {
if (HttpUtils.HasRequestBody(action)) {
op.Parameters.RemoveAll(x => x.In == "query");
}
},});
或者,您可以禁用自动添加请求正文:
Plugins.Add(new OpenApiFeature {
DisableAutoDtoInBodyParam = true,});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。