今天的目標
- 1 學會使用Service
- 2 了解Service的層次架構
- 3 初探注入
1 添加服務接口, 請注意是在 Acme.BookStore.Application.Contracts
, 因為我理解 Contracts是合約的意思, 是用來約束一些行為的, 比如約束服務.
在Acme.BookStore.Application.Contracts
項目中定義一個名為IBookAppService
的接口:
using System;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace Acme.BookStore
{
public interface IBookAppService :
ICrudAppService< //定義了CRUD方法
BookDto, //用來展示書籍
Guid, //Book實體的主鍵
PagedAndSortedResultRequestDto, //獲取書籍的時候用於分頁和排序
CreateUpdateBookDto, //用於創建書籍
CreateUpdateBookDto> //用於更新書籍
{
}
}
2 添加服務 Acme.BookStore.Application
中已經自動引用了 Acme.BookStore.Application.Contract
, 所以可以直接繼承接口 IBookAppService
, 這也是約束
在Acme.BookStore.Application項目中實現名為BookAppService的IBookAppService:
using System;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Repositories;
namespace Acme.BookStore
{
public class BookAppService :
CrudAppService<Book, BookDto, Guid, PagedAndSortedResultRequestDto,
CreateUpdateBookDto, CreateUpdateBookDto>,
IBookAppService
{
public BookAppService(IRepository<Book, Guid> repository)
: base(repository)
{
}
}
}
Swagger UI, 選擇web項目,啟動, 然后在瀏覽后面輸入/swagger, 可以看到api已經提供了. ABP會自動將我們的服務暴露出來以提供給第三方或者我們的前端使用
