一、Web Api架构组织
一)MVC 设计模式中的Model与Controller:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200806100726465.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNzQzNDYz,size_16,color_FFFFFF,t_70)
- 在 MVC 模式中,控制器(Controller)是初始入口点,负责选择要使用的模型类型和要呈现的视图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200806093746514.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNzQzNDYz,size_16,color_FFFFFF,t_70)
1、Model层:
- 表示应用程序和任何应由其执行的业务逻辑或操作的状态。
- 业务逻辑应与保持应用程序状态的任何实现逻辑一起封装在模型中。
namespace Library.Entity
{
public class Book
{
public int Id {
set; get; }
public string Name {
set; get; }
public string Author {
set; get; }
}
}
- 相当于对Model与Contorller的进一步解耦,里面封装了通用的业务逻辑、通用的数据接口等。
- 封装了与数据库的基本操作,供Controller层调用完成高层业务逻辑。
using Library.Entity;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Library.Services
{
public interface IBookRepository
{
Task<IEnumerable<Book>> GetBooksAsync();
Task<Book> GetBookAsync(int id);
void AddBook(Book book);
void UpdateBook(Book book);
void DeleteBook(Book book);
bool BookExistAsync(int id);
}
}
using Library.Entity;
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Library.Services
{
public class BookRepository : IBookRepository
{
private readonly LibraryDbContext _context;
public BookRepository(LibraryDbContext context)
{
_context = context;
}
public void AddBook(Book book)
{
_context.Books.Add(book);
_context.SaveChanges();
}
public bool BookExistAsync(int id)
{
return _context.Books.Any(x => x.Id =