内容简介: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(超类 )
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数据挖掘导论
(美)Pang-Ning Tan、Michael Steinbach、Vipin Kumar / 机械工业出版社 / 2010-9 / 59.00元
本书全面介绍了数据挖掘的理论和方法,着重介绍如何用数据挖掘知识解决各种实际问题,涉及学科领域众多,适用面广。 书中涵盖5个主题:数据、分类、关联分析、聚类和异常检测。除异常检测外,每个主题都包含两章:前面一章讲述基本概念、代表性算法和评估技术,后面一章较深入地讨论高级概念和算法。目的是使读者在透彻地理解数据挖掘基础的同时,还能了解更多重要的高级主题。 本书特色 ·包含大量的图表、......一起来看看 《数据挖掘导论》 这本书的介绍吧!