美文网首页ASP .NET Core Web Api + Angular
ASP .NET Core Web API_ 06_Resour

ASP .NET Core Web API_ 06_Resour

作者: xtddw | 来源:发表于2018-10-21 20:32 被阅读30次

API 不应直接返回Entity

    *   Entity/Domain Model是内部实现细节
    * 合约/接口界面
image.png

API应返回另外一个类(资源 Resource)

  • 与Entity可能很像.
  • 独立于Entity, 单独进化和改变.
  • 也可以叫做ViewModel, Dto

Entity与Resoucre之间映射[AutoMapper]

  • 安装Nuget包:
    AutoMapper
    AutoMapper.Extensions.Microsoft.DependencyInjection >>> API
  • 配置映射
    可以创建Profile
    CreateMap<TSource, TDestination>()
public class MappingProfile:Profile
    {
        public MappingProfile()
        {
            CreateMap<Post, PostResource>()
                .ForMember(dest => dest.UpdateTime, opt => opt.MapFrom(src => src.LastModified));
            CreateMap<PostResource,Post>();
        }
    }
  • services.AddAutoMapper()
  • 依赖注入AutoMapper
[HttpGet]
public async Task<IActionResult> Get()
{
      var posts = await _postRepository.GetAllPostsAsync();
      var postResources = _mapper.Map<IEnumerable<Post>,IEnumerable<PostResource>>(posts);
      return Ok(postResources);
 }

相关文章

网友评论

    本文标题:ASP .NET Core Web API_ 06_Resour

    本文链接:https://www.haomeiwen.com/subject/nvhizftx.html