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
网友评论