• ASP.NET Core 3.1, Web API, RESTful, JWT • Entity Framework Core, Code first, PostgreSQL • Clean Architecture •
• Swagger: https://localhost:5001/swagger/ (Alex55 123) •
• Postgre settings: https://github.com/Uniges/BugTracker/blob/master/WebApp/appsettings.json •
Прототип системы учета ошибок, обнаруженных в процессе тестирования программного обеспечения.
Пароли хэшируются, тестовые данные и пользователи запишутся в базу при первой попытке обращения к любому из API.
Для работы API необходим JWT токен.
-
Скачать целиком, открыть в Visual Studio решение с проектами.
-
Подождать, пока загрузятся все необходимые пакеты.
-
Подключение настроено для СУБД Postgres. Необходимо прописать актуальные креды и проверить, что базы с таким именем не существует. Пользователей через SQL не добавлять, т.к. пароли хэшируются в коде. База с тестовыми данными создастся автоматически при первом запросе.
-
Выбрать проект WebApp в режиме Debug, запустить.
-
Domain - уровень сущностей приложения
-
DAL - уровень репозиториев, доступ к данным
-
Application - уровень сервисов с бизнес логикой
-
WebApp - верхний уровень с контроллерами, API
/Users/auth - авторизация, получение JWT токена (Alex55 123, Li77 321)
{
"Login": "Alex55",
"Password": "123"
}
/Users/edit - редактирование имени и/или фамилии пользователя
{
"UserId": 1,
"Name" : "George",
"LastName": "P"
}
/Bugs/{id} - получить баг по ID
/Bugs - получить все баги
/Bugs/sort - получить все баги, отсортированные по выбранному полю и направлению сортировки
{
"FieldName": "datE",
"IsSortByDesc": false
}
public class Bug
{
public DateTime Date { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public BugStatus Status { get; set; }
public BugUrgency Urgency { get; set; }
public BugCriticality Criticality { get; set; }
}
/Bugs/create - создание бага (автоматически создается первая запись в истории, время выставляется автоматически)
{
"title": "New bug",
"description": "Some description",
"urgency": 2,
"criticality": 1,
"comment": "Init new bug"
}
public enum BugCriticality
{
Alarm,
Critical,
NonCritical,
ChangeRequest
}
public enum BugUrgency
{
High,
Medium,
Low,
None
}
/Bugs/edit - редактирование статуса бага (автоматически создается запись в истории, время автоматически)
{
"BugId": 1,
"BugStatus": 1,
"Comment": "Open the bug"
}
public enum BugStatus
{
New,
Opened,
Fixed,
Closed
}
public enum BugAction
{
Input,
Open,
Solution,
Close
}
/Bugs/history/{id} - получение истории бага, отсортированной по дате внесения изменений