基于asp.net core webapi的商品管理系统Api开发 必备基础知识
2021-01-08 10:28
阅读:576
标签:file ica runtime origin enum tps 配置 depend iap
1 automapper
.NET CORE 中使用AutoMapper进行对象映射
参考文档:
https://blog.csdn.net/weixin_37207795/article/details/81009878
2 路由基础
参考文档:
https://www.cnblogs.com/aehyok/p/3449851.html
配置代码
using AutoMapper; using System; using System.Collections.Generic; using System.Text; using Xwy.Domain.Dtos.Product; using Xwy.Domain.Dtos.UserInfo; using Xwy.Domain.Entities; namespace Xwy.Domain { public class AutoMapperConfigs : Profile { //添加你的实体映射关系. public AutoMapperConfigs() { //Product转ProductDto. CreateMap() //映射发生之前 .BeforeMap((source, dto) => { //可以较为精确的控制输出数据格式 //dto.CreateTime = Convert.ToDateTime(source.CreateTime).ToString("yyyy-MM-dd"); }) //映射发生之后 .AfterMap((source, dto) => { //code ... }); //UserInfoDto转UserInfo. CreateMap (); CreateMap (); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using AutoMapper; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Xwy.Domain; using Xwy.Domain.DbContexts; using Xwy.Domain.Dtos.UserInfo; using Xwy.Domain.Entities; namespace Xwy.WebApiDemo.Controllers { [Route("api/[controller]")] [ApiController] public class UserInfoesController : ControllerBase { private readonly VueShopDbContext _context; private readonly IMapper _mapper; public UserInfoesController(VueShopDbContext context,IMapper mapper) { _context = context; _mapper = mapper; } // GET: api/UserInfoes [HttpGet] public async Task>> GetUserInfos() { return await _context.UserInfos.ToListAsync(); } // GET: api/UserInfoes/5 [HttpGet("{id}")] public async Task > GetUserInfo(int id) { var userInfo = await _context.UserInfos.FindAsync(id); if (userInfo == null) { return NotFound(); } return userInfo; } // PUT: api/UserInfoes/5 // To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://go.microsoft.com/fwlink/?linkid=2123754. [HttpPut("{id}")] public async Task PutUserInfo(int id, UserInfo userInfo) { if (id != userInfo.Id) { return BadRequest(); } _context.Entry(userInfo).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!UserInfoExists(id)) { return NotFound(); } else { throw; } } return NoContent(); } // POST: api/UserInfoes // To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://go.microsoft.com/fwlink/?linkid=2123754. [HttpPost] public async Task > PostUserInfo(UserInfoDto userInfoDto) { if (UserInfoExists(userInfoDto.UserName)) return BadRequest("用户名已存在!"); UserInfo userInfo = _mapper.Map (userInfoDto); _context.UserInfos.Add(userInfo); await _context.SaveChangesAsync(); return CreatedAtAction("GetUserInfo", new { id = userInfo.Id }, userInfo); } // DELETE: api/UserInfoes/5 [HttpDelete("{id}")] public async Task > DeleteUserInfo(int id) { var userInfo = await _context.UserInfos.FindAsync(id); if (userInfo == null) { return NotFound(); } _context.UserInfos.Remove(userInfo); await _context.SaveChangesAsync(); return userInfo; } private bool UserInfoExists(int id) { return _context.UserInfos.Any(e => e.Id == id); } private bool UserInfoExists(string userName) { return _context.UserInfos.Any(e => e.UserName == userName); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using AutoMapper; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.OpenApi.Models; using Xwy.Domain; using Xwy.Domain.DbContexts; namespace Xwy.WebApiDemo { public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddDbContext(m=> { }); services.AddDbContext (m => { }); services.AddAutoMapper(typeof(AutoMapperConfigs));//注册automapper服务 services.AddSwaggerGen(m => { m.SwaggerDoc("v1",new OpenApiInfo() { Title="swaggertest",Version="v1"}); }); services.AddCors(m => m.AddPolicy("any", a => a.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader())); services.AddControllers(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseRouting(); app.UseAuthorization(); app.UseSwagger(); app.UseCors(); app.UseSwaggerUI(m=> { m.SwaggerEndpoint("/swagger/v1/swagger.json","swaggertest"); }); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); } } }
基于asp.net core webapi的商品管理系统Api开发 必备基础知识
标签:file ica runtime origin enum tps 配置 depend iap
原文地址:https://www.cnblogs.com/xiewenyu/p/13125117.html
下一篇:c#出现可访问性不一致的情况
文章来自:搜素材网的编程语言模块,转载请注明文章出处。
文章标题:基于asp.net core webapi的商品管理系统Api开发 必备基础知识
文章链接:http://soscw.com/essay/40907.html
文章标题:基于asp.net core webapi的商品管理系统Api开发 必备基础知识
文章链接:http://soscw.com/essay/40907.html
评论
亲,登录后才可以留言!