内容简介:2、添加模型类3、添加数据上下文4、注册数据上下文
一、.net core环境准备
直接装visualstudio 2017,具体安装方法,自行下载安装即可。
二、.net core使用
用.net core编写一个webapi。
具体过程如下,
1、新建工程
2、添加模型类
public class MyItem { public long Id { get; set; } public string Name { get; set; } public bool IsComplete { get; set; } }
3、添加数据上下文
public class MyContext: DbContext { public MyContext(DbContextOptions<MyContext> options) : base(options) { } public DbSet<MyItem> MyItems { get; set; } }
4、注册数据上下文
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<MyContext>(opt => opt.UseInMemoryDatabase("TodoList")); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseMvc(); } }
5、添加控制器及相关方法
添加get,post,delete等方法
public class MyController : Controller { private readonly MyContext _context; public MyController(MyContext context) { _context = context; if (_context.MyItems.Count() == 0) { _context.MyItems.Add(new MyItem {Id=99, Name = "我的自定义的控制器_99 "+DateTime.Now.ToLocalTime() }); _context.MyItems.Add(new MyItem {Id =100, Name = "我的自定义的控制器_100 " + DateTime.Now.ToLocalTime() }); _context.SaveChanges(); } } // GET: api/Todo [HttpGet] public async Task<ActionResult<IEnumerable<MyItem>>> GetMyItems() { return await _context.MyItems.ToListAsync(); } // GET: api/Todo/99 [HttpGet("{id}")] public async Task<ActionResult<MyItem>> GetMyItem(long id) { var todoItem = await _context.MyItems.FindAsync(id); if (todoItem == null) { return NotFound(); } return todoItem; } // POST: api/Todo [HttpPost] public async Task<ActionResult<MyItem>> PostMyItem(MyItem item) { _context.MyItems.Add(item); await _context.SaveChangesAsync(); return CreatedAtAction("GetMyItem", new { id = item.Id , Name = item.Name}, item); } [HttpPut("{id}")] public async Task<IActionResult> PutMyItem(long id, MyItem item) { if (id != item.Id) { return BadRequest(); } _context.Entry(item).State = EntityState.Modified; await _context.SaveChangesAsync(); return NoContent(); } // DELETE: api/Todo/101 [HttpDelete("{id}")] public async Task<ActionResult<MyItem>> DeleteMyItem(long id) { var todoItem = await _context.MyItems.FindAsync(id); if (todoItem == null) { return NotFound(); } _context.MyItems.Remove(todoItem); await _context.SaveChangesAsync(); return todoItem; } }
6、设置路由
在刚新加的控制器上新增路由,比如
[Route("api/My")] [ApiController] public class MyController : Controller
同时在launchSettings.json中设置,访问默认路径,比如
{ "$schema": "http://json.schemastore.org/launchsettings.json", "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:50228", "sslPort": 44364 } }, "profiles": { "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "launchUrl": "api/My", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "MyToDoApi": { "commandName": "Project", "launchBrowser": true, "launchUrl": "api/My", "applicationUrl": "https://localhost:5001;http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } }
7、测试
在工程上启用调试,本文使用postman进行测试。
启用调试后,在浏览器页面中地址为:https://localhost:44364/api/My,显示内容如下,
[{"id":99,"name":"我的自定义的控制器_99 2019/1/13 23:26:24","isComplete":false},{"id":100,"name":"我的自定义的控制器_100 2019/1/13 23:26:24","isComplete":false}]
7.1、测试get方法
GetMyItems调用如下,
GetMyItem调用如下,
7.2、测试post方法
PostMyItem调用如下,
调用后,在浏览器页面验证如下
7.3、测试put方法
PutMyItem调用如下
浏览器中验证,
7.4、测试delete方法
DeleteMyItem调用如下,
浏览器中验证,
以上所述就是小编给大家介绍的《少说话多写代码之.net core——001:建一个api》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 用代码说话!机器学习能预测股市吗?
- 少说话多写代码之Python学习002——环境搭建
- 少说话多写代码之Python学习021——导入模块
- 少说话多写代码之Python学习009——字典的创建
- 少说话多写代码之Python学习020——使用逗号输出
- 少说话多写代码之Python学习042——类04(超类 )
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。