微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 Swagger 没有选择 ABP 框架中 ApplicationService 方法的摘要?

如何解决为什么 Swagger 没有选择 ABP 框架中 ApplicationService 方法的摘要?

我有以下应用服务方法

public class MyAppService : AsyncCrudAppService<Entity,Dto,Guid,GetAllRequest,CreateRequest,UpdateRequest,GetRequest,DeleteRequest>,IMyAppService
{
    /// <summary>
    /// Return cities associated with zip code
    /// </summary>
    /// <param name="zipCode">Zip code to search. If null all cities are returned.</param>
    /// <returns>Cities associated with zip code.</returns>
    /// <exception cref="EntityNotFoundException">If zip code is provided but no associated city is found</exception>
    /// <response code="404">If no city with zip code found</response>
    [ProducesResponseType(StatusCodes.Status200OK)]
    [ProducesResponseType(StatusCodes.Status404NotFound)]
    public async Task<GetCitiesByZipCodeResponse> GetCitiesByZipCode(int? zipCode = null)
    {
        ...
    }
}

即使我有一个描述端点做什么的摘要,它也没有以招摇的方式显示。向 Swagger 添加有关应用服务方法的丰富信息的正确方法是什么?

它确实获得了 ProducesResponseType(StatusCodes.Status404NotFound)效果,并显示 404 作为可能的响应。

Swagger for GetCitiesByZipCode

解决方法

AppServices 会自动转换为 Controllers。但是您的自定义 Swagger 属性已被剥离。如果您有这样的要求,则创建一个新的 MyContoller 并在 AppService 中调用您的 Controller 方法。并使用以下属性为您的 Appservice 禁用远程服务功能

[RemoteService(IsEnabled = false)] 

https://docs.abp.io/en/abp/latest/API/Auto-API-Controllers#remoteservice-attribute

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。