Skip to content

Rest API for reading books website using ASP.NET Core 3.0, SQL Server and Entity Framework.

Notifications You must be signed in to change notification settings

HuaHoangThanhBao/TruyenAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TruyenAPI

Rest API was built with ASP.NET Core 3.0 with CRUD operations for a reading book website. It is using Repository pattern to design architecture and communicating with database by ORM model.

Set-up

  1. Open your project -> Change your server name in appsetting.Body (Json) -> Open Window console
  2. Typing 'Add-migration create-database' command to create Migrations folder.
  3. Typing 'Update-database' to create database in SQL Server.

API (HTTP request)

Http-Headers:

Each request must be attached with HttpHeaders and we need declare APIKey inside HttpHeaders. Because of security, APIKey would not be in Git.

Example:

headers: {
  "Content-Type": "application/json",
  "Api-Key": environment.apiKey
}

Note:

  1. [1] - Get all records
  2. [2] - Get only one record.
  3. [3] - Get record with foreign key.
  4. {id}: Id of record which you want to get.

TacGia table

Method: POST

Request: host/api/tacgia
Body (Json):
[
  {
    "TenTacGia": string,
    "TinhTrang": boolean
  }
  ,...
]
Method: GET

[1] - Request: host/api/tacgia

[2] - Request: host/api/tacgia/{id}

[3] - Request: host/api/tacgia/{id}/details
Method: PUT

Request: host/api/tacgia
Body (Json):
{
    "TenTacGia": string,
    "TinhTrang": boolean
}
Method: DELETE

Request: Request/api/tacgia/{id}

TheLoai table

Method: POST

Request: host/api/theloai
Body (Json):
[
  {
    "TenTheLoai": string,
    "TinhTrang": boolean
  }
  ,...
]
Method: GET

[1] - Request: host/api/theloai

[2] - Request: host/api/theloai/{id}

[3] - Request: host/api/theloai/{id}/details
Method: PUT

Request: host/api/theloai
Body (Json):
{
    "TenTheLoai": string,
    "TinhTrang": boolean
}
Method: DELETE

Request: Request/api/theloai/{id}

Truyen table

Method: POST

Request: host/api/truyen
Body (Json):
[
  {
    "TacGiaID": number,
    "TenTruyen": string,
    "MoTa": string,
    "TinhTrang": boolean,
    "HinhAnh": imageRequest
  }
  ,...
]
Method: GET

[1] - Request: host/api/truyen

[2] - Request: host/api/truyen/{id}

[3] - Request: host/api/truyen/{id}/details
Method: PUT

Request: host/api/truyen
Body (Json):
{
    "TacGiaID": number,
    "TenTruyen": string,
    "MoTa": string,
    "TinhTrang": boolean,
    "HinhAnh": imageRequest
}
Method: DELETE

Request: Request/api/truyen/{id}

PhuLuc table

Method: POST

Request: host/api/phuluc
Body (Json):
[
  {
    "TruyenID": number,
    "TheLoaiID": number
  }
  ,...
]
Method: GET

[1] - Request: host/api/phuluc

[2] - Request: host/api/phuluc/{id}
Method: PUT

Request: host/api/phuluc
Body (Json):
{
    "TruyenID": number,
    "TheLoaiID": number
}
Method: DELETE

Request: Request/api/phuluc/{id}

Chuong table

Method: POST

Request: host/api/chuong
Body (Json):
[
  {
    "TruyenID": number,
    "TenChuong": string,
    "ThoiGianCapNhat": datetime,
    "LuotXem": number
  }
  ,...
]
Method: GET

[1] - Request: host/api/chuong

[2] - Request: host/api/chuong/{id}

[3] - Request: host/api/chuong/{id}/details
Method: PUT

Request: host/api/chuong
Body (Json):
{
   "TruyenID": number,
   "TenChuong": string,
   "ThoiGianCapNhat": datetime,
   "LuotXem": number
}
Method: DELETE

Request: Request/api/chuong/{id}

NoiDungChuong table

Method: POST

Request: host/api/noidungchuong
Body (Json):
[
  {
     "ChuongID": number,
     "HinhAnh": imageRequest
  }
  ,...
]
Method: GET

[1] - Request: host/api/noidungchuong

[2] - Request: host/api/noidungchuong/{id}

[3] - Request: host/api/noidungchuong/{id}/details
Method: PUT

Request: host/api/noidungchuong
Body (Json):
{
   "ChuongID": number,
   "HinhAnh": imageRequest
}
Method: DELETE

Request: Request/api/noidungchuong/{id}

User table

Method: POST

Request: host/api/user
Body (Json):
{
    "FirstName": string,
    "LastName": string,
    "Email": string,
    "Quyen": number,
    "Password": string
}
Method: GET

[1] - Request: host/api/user

[2] - Request: host/api/user/{id}

[3] - Request: host/api/user/{id}/details
Method: PUT

Request: host/api/user
Body (Json):
{
    "FirstName": string,
    "LastName": string,
    "Email": string,
    "Quyen": number,
    "Password": string
}
Method: DELETE

Request: Request/api/user/{id}

TheoDoi table

Method: POST

Request: host/api/theodoi
Body (Json):
{
    "TruyenID": string,
    "Quyen": number,
    "UserID": string
}
Method: GET

[1] - Request: host/api/theodoi

[2] - Request: host/api/theodoi/{id}

[3] - Request: host/api/theodoi/{id}/details
Method: PUT

Request: host/api/theodoi
Body (Json):
{
    "TruyenID": string,
    "UserID": string
}
Method: DELETE

Request: Request/api/theodoi/{id}

Note: delete theodoi by id
Method: DELETE

Request: Request/api/theodoi/deleteforuser?userid={id}&truyenid={id}

Note: delete theodoi by truyenid and userid

BinhLuan table

Method: POST

Request: host/api/binhluan
Body (Json):
{
    "UserID": string,
    "ChuongID": number,
    "NoiDung": string,
    "NgayBL": datetime
}
Method: GET

[1] - Request: host/api/binhluan

[2] - Request: host/api/binhluan/{id}

[3] - Request: host/api/binhluan/{id}/details
Method: PUT

Request: host/api/binhluan
Body (Json):
{
    "UserID": string,
    "ChuongID": number,
    "NoiDung": string,
    "NgayBL": datetime
}
Method: DELETE

Request: Request/api/binhluan/{id}

Cookie Authentication

  1. Login
Method: POST

Request: host/api/auth/login
Body (Json):
{
    "Email": string,
    "Password": string,
    "clientURI": string,
}
  1. Registration
Method: POST

Request: host/api/auth/registration
Body (Json):
{
    "FirstName": string,
    "LastName": string,
    "Email": string,
    "Password": string,
    "ConfirmPassword": string,
    "clientURI": string,
}

Note: Login and registration have two-step verification through email. Once you confirm by email, you would be avaiable to the next step. This function can be intergrated with any front-end framework by calling API.

Pagination

  1. Truyen table
Method: GET

[Get all]: host/api/truyen/pagination?pageNumber={number}&pageSize={number}&getAll=true

[Get lastest updates]: host/api/truyen/pagination?pageNumber={number}&pageSize={number}&lastestUpdate=true

[Get top views]: host/api/truyen/pagination?pageNumber={number}&pageSize={number}&topView=true

[Get truyen of theloai]: host/api/truyen/pagination?pageNumber={number}&pageSize={number}&sorting=true&theloaiID={id}

[Get truyen of theodoi]: host/api/truyen/pagination?pageNumber={number}&pageSize={number}&sorting=true&userID={id}
  1. BinhLuan table
Method: GET

[Get all]: host/api/binhluan/pagination?pageNumber={number}&pageSize={number}&getAll=true

[Get lastest updates]: host/api/binhluan/pagination?pageNumber={number}&pageSize={number}&lastestUpdate=true

[Get top 10 lastest updates]: host/api/binhluan/pagination?pageNumber={number}&pageSize={number}&sorting=true&truyenID={id}

[Get binhluan of chuong]: host/api/binhluan/pagination?pageNumber={number}&pageSize={number}&sorting=true&chuongID={id}
  1. TheoDoi table
Method: GET

[Get all]: host/api/theodoi/pagination?pageNumber={number}&pageSize={number}&getAll=true

Further help

To get more help, please contact via email: [email protected].

About

Rest API for reading books website using ASP.NET Core 3.0, SQL Server and Entity Framework.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages