У систему приходить структурована інформація, але її типи не можуть бути визначені на етапі розробки. Типи об'єктів, як і самі дані додаються через 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)