поправлен README.md
Tests / test (push) Successful in 2m42s

This commit is contained in:
gorbenko.pavel
2026-07-30 12:45:23 +05:00
parent da158cfd84
commit 2e4873bb4b
2 changed files with 52 additions and 83 deletions
+52 -6
View File
@@ -1,6 +1,18 @@
# Tnsu.ApprovalRoute
Каркас проекта на .NET 10, повторяющий архитектуру [tnsu-inventory](../tnsu-inventory): 4 слоя (Api / Application / Domain / Infrastructure), MediatR, EF Core + PostgreSQL. Бизнес-логика не реализована — только структура решения и минимальная точка входа.
Сервис маршрутов согласования: типы заявок (`RequestType`) и шаблонные маршруты согласования (`TemplateRoute` → `TemplateRouteStep`) с разрешением подходящего маршрута под конкретные параметры (проект, тип заявки, сумма и т.д.).
Архитектура повторяет [tnsu-inventory](../tnsu-inventory): 4 слоя (Api / Application / Domain / Infrastructure), MediatR-стиль сервисов, EF Core + PostgreSQL.
## Стек
| Компонент | Технология |
|-----------|------------|
| Backend | .NET 10, ASP.NET Core (MVC controllers), EF Core |
| БД | PostgreSQL |
| Авторизация | Entra ID (JWT Bearer) либо dev-схема (`X-Dev-User-Email`) при отсутствии конфигурации Entra |
| API-документация | Scalar (`/scalar`) на основе OpenAPI |
| Интеграция | `api.tnsu.kz` (портал 1С) |
## Структура
@@ -10,12 +22,27 @@ backend/
Directory.Packages.props # централизованные версии пакетов
Tnsu.ApprovalRoute.sln
src/
Tnsu.ApprovalRoute.Domain/ # сущности домена (пусто)
Tnsu.ApprovalRoute.Application/ # MediatR-хендлеры, DI-регистрация слоя
Tnsu.ApprovalRoute.Infrastructure/ # EF Core DbContext, DI-регистрация слоя
Tnsu.ApprovalRoute.Api/ # ASP.NET Core Minimal API, Program.cs
Tnsu.ApprovalRoute.Domain/ # сущности и enum'ы домена
Tnsu.ApprovalRoute.Application/ # сервисы, DTO, валидаторы
Tnsu.ApprovalRoute.Infrastructure/ # EF Core DbContext, миграции, клиент tnsu-portal
Tnsu.ApprovalRoute.Api/ # ASP.NET Core Controllers, Program.cs, авторизация
tests/
Tnsu.ApprovalRoute.IntegrationTests/
docker-compose.yml
```
Отдельного frontend в этом репозитории нет — сервис предоставляет только backend API.
## API
| Метод | Путь | Описание |
|-------|------|----------|
| CRUD | `/api/request-types` | Типы заявок |
| CRUD | `/api/template-routes` | Шаблонные маршруты согласования |
| GET | `/api/template-routes/resolve` | Подбор подходящего маршрута по параметрам |
| CRUD | `/api/template-routes/{routeId}/steps` | Шаги шаблонного маршрута |
| GET | `/health` | Health-check |
## Запуск локально
```bash
@@ -25,6 +52,12 @@ dotnet run --project src/Tnsu.ApprovalRoute.Api
Требуется PostgreSQL (строка подключения — `ConnectionStrings:Postgres` в `appsettings.json`).
Авторизация:
- Entra ID — задать `Entra:TenantId` и `Entra:Audience` в конфигурации
- Без Entra — используется dev-схема, текущий пользователь передаётся заголовком `X-Dev-User-Email`
После запуска документация API доступна на `/scalar`.
## Запуск через Docker Compose
```bash
@@ -32,4 +65,17 @@ cp .env.example .env
docker compose up --build
```
Поднимает `postgres` и `api` (health-check на `/health`).
Поднимает `postgres` и `api`.
| Сервис | URL |
|--------|-----|
| API | http://localhost:8082 |
| API health | http://localhost:8082/health |
| Postgres | localhost:5435 |
## Тесты
```bash
cd backend
dotnet test
```
-77
View File
@@ -1,77 +0,0 @@
# approval-route-admin
## Summary
Short summary on functionality and used technologies.
[picture of the solution in action, if possible]
## Used SharePoint Framework Version
![version](https://img.shields.io/badge/version-1.22.1-green.svg)
## Applies to
- [SharePoint Framework](https://aka.ms/spfx)
- [Microsoft 365 tenant](https://docs.microsoft.com/sharepoint/dev/spfx/set-up-your-developer-tenant)
> Get your own free development tenant by subscribing to [Microsoft 365 developer program](http://aka.ms/o365devprogram)
## Prerequisites
> Any special pre-requisites?
## Solution
| Solution | Author(s) |
| ----------- | ------------------------------------------------------- |
| folder name | Author details (name, company, twitter alias with link) |
## Version history
| Version | Date | Comments |
| ------- | ---------------- | --------------- |
| 1.1 | March 10, 2021 | Update comment |
| 1.0 | January 29, 2021 | Initial release |
## Disclaimer
**THIS CODE IS PROVIDED _AS IS_ WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.**
---
## Minimal Path to Awesome
- Clone this repository
- Ensure that you are at the solution folder
- in the command-line run:
- `npm install -g @rushstack/heft`
- `npm install`
- `heft start`
> Include any additional steps as needed.
Other build commands can be listed using `heft --help`.
## Features
Description of the extension that expands upon high-level summary above.
This extension illustrates the following concepts:
- topic 1
- topic 2
- topic 3
> Notice that better pictures and documentation will increase the sample usage and the value you are providing for others. Thanks for your submissions advance.
> Share your web part with others through Microsoft 365 Patterns and Practices program to get visibility and exposure. More details on the community, open-source projects and other activities from http://aka.ms/m365pnp.
## References
- [Getting started with SharePoint Framework](https://docs.microsoft.com/sharepoint/dev/spfx/set-up-your-developer-tenant)
- [Building for Microsoft teams](https://docs.microsoft.com/sharepoint/dev/spfx/build-for-teams-overview)
- [Use Microsoft Graph in your solution](https://docs.microsoft.com/sharepoint/dev/spfx/web-parts/get-started/using-microsoft-graph-apis)
- [Publish SharePoint Framework applications to the Marketplace](https://docs.microsoft.com/sharepoint/dev/spfx/publish-to-marketplace-overview)
- [Microsoft 365 Patterns and Practices](https://aka.ms/m365pnp) - Guidance, tooling, samples and open-source controls for your Microsoft 365 development
- [Heft Documentation](https://heft.rushstack.io/)