ABP(4) - 使用服務 - 官方教程掃盲貼之Service和IService的使用 (詳細解說)


今天的目標

  • 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會自動將我們的服務暴露出來以提供給第三方或者我們的前端使用

https://localhost:44389/swagger/index.html

swagger


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM