У систему приходить структурована інформація, але її типи не можуть бути визначені на етапі розробки. Типи об'єктів, як і самі дані додаються через API.
- Створити API-сервіс, який дозволяє працювати з сутностями будь-яких типів.
- Реалізувати CRUD для типів сутностей. Наприклад, створимо тип
Person
, з атрибутамиname
таage
:POST /api/types/person
{ "name": "Person", "attributes": ["name", "age"] }
- Реалізувати CRUD (create, read, update, delete) сутностей і читання всієї колекції. Атрибути яких не має в сутності не повинні прийматись. У відповідь помилка.
- Запит
POST /api/entities/person
повинен створити сутністьPerson
з атрибутамиname
,age
:
{
"name": "Ivan Ivanov",
"age": "33"
}
- Запит
GET /api/entities/person
повинен повернути всіх Person-ів - Підтримуються лише строкові атрибути
- ASP .NET Core
- Конфіги винесені в окремий файл
- Логіка в коді має бути прозорою
- Використовуй шаблони програмування (GoF patterns)
- Використовуй SQL базу данних (ми використовуємо PostgreSQL)
- Правильно обробляти помилки, відділяти помилки клієнта і сервера
- REST API повинен слідувати best practices включаючи правильну видачу статус кодів
- Використовуй EAV структуру таблиць
- Створювати динамічно таблички або view не можна.
- Реалізувати можливість створювати атрибути, які посилаються на інші типи. Наприклад, Person -> Address:
{ "name": "John", "age": "12", "address": { "city": "Kyiv", "street": "..." } }
- Додати можливість валідувати атрибути (e.g.,
required
,maxlength
,minlength
)