我预计做的是一个很简易的post/get application,而目前只预计会有4只极度简陋的API。
其中HttpPost,将只会限缩在内网(预计使用postman/swagger,前端实在有点障碍),所以对外只会有两个公开的GET API,权限的部分我就全部省略了(耶),table schema也只会预计有下列这两张
接着安装vscode
安装dotnet core 5.0 sdk
dotnet new WebAPI -o homelabAPI
dotnet add package Microsoft.EntityFrameworkCore --version 5.0.9
dotnet add package Npgsql --version 5.0.7
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL --version 5.0.7
把上面的Table定义成Class Model,设定相关的DBContext与Connection String。
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace homelabAPI
{
public class Posts
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid PostID { get; set; }
[MaxLength(50)]
[Required]
public String Title { get; set;}
public String Content { get; set; }
[MaxLength(50)]
public String Tag { get; set; }
[Required]
public DateTime CreateTime { get; set; }
[Required]
public DateTime ModifyTime { get; set; }
[Required]
public Guid UserID { get; set; }
[ForeignKey("UserID")]
public Users Users {get; set;}
}
}
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace homelabAPI
{
public class Users
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid UserID { get; set; }
[MaxLength(20)]
public String Name { get; set; }
[Required]
public DateTime CreateTime { get; set; }
[Required]
public DateTime ModifyTime { get; set; }
}
}
using Microsoft.EntityFrameworkCore;
namespace homelabAPI
{
public class BloggerContext : DbContext
{
public BloggerContext(DbContextOptions<BloggerContext> options): base(options)
{
}
public DbSet<Posts> Posts {get; set;}
public DbSet<Users> Users {get; set;}
}
}
於startup中注册DBContext的DI服务(预设Lifetime为scope),appsettings放入连线字串。
services.AddDbContext<BloggerContext>(options => options.UseNpgsql("name=ConnectionStrings:DefaultConnection"));
用Code First来把table建起来(先安装对应的工具才能执行dotnet ef相关指令)
dotnet tool install --global dotnet-ef
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet ef migrations add InitialCreate -c BloggerContext
dotnet ef database update
使用pgadmin来看看是不是真的建立成功。
明天就可以来写个简单的API了,顺便一并上传git repo。
很久没写这些东西了,这次算是简单的复习了一下。过去IDE的部分都是使用Visual Studio开发,更为无脑简单。且2-3年前其实也有试着用VS Code开发过 .NET Core 2.0,但实在是有点障碍,不过今时今日试着弄了一下发现比当初友善了好多,Extensions也相当完善,倒是没有当初那种强烈的障碍感了~
<<: Transactions (3-1) - Weak Isolation Levels - Read Committed
Excel除了有强大的函数可以使用外,还有一个不容小觑的工具:枢纽分析表。他可以快速帮你整并相关资料...
大纲 昨天完成了header的下半部分,今天的任务就要来完成header的上半部分 —— Navig...
在上一篇我们完成了魔术方块的侦测,今天我们要来制作面的旋转。 目录 选择的面 面的旋转 选择的面 建...
大家好~ 在接下来30天的文章中 我想与大家分享 工作所学 以及学习一些新的东西,例如像是Azure...
其实google的话就会有很多相关自然语言处理的定义与文章,自然语言处理英文为Natural Lan...