Основным требованием является массивные редактируемые данные на странице и ожидающие запросы к серверу.Пользователь может вносить изменения в разные объекты, затем эти изменения сохраняются локально и только после нажатия кнопки «Сохранить» - на сервер отправляется запрос на изменение данных.
Как бы вы порекомендовалипостроить API в таком случае?Какой подход будет более предпочтительным для требований, описанных выше.Должно ли это быть REST API , GRAPHQL или что-то более конкретное?
Вот как в настоящее время выглядит структура данных:
{
'0': {
Subject: {
FirstName: 'Vasia Puplin',
LastName: 'Puplin',
FullName: 'Vasia Puplin',
PrefixName: 'Mr.',
TaxId: null,
SearchFirstName: 'Vasia Puplin',
SearchLastName: 'Vasia Puplin',
Class: {
Id: 148,
Name: 'Person'
},
Status: {
Id: 173,
Name: 'Active'
},
Updated: '2014-05-26T10:31:15.353',
Updatedby: null,
UpdatebyName: null,
Created: '2014-05-26T10:31:15.353',
Createdby: null,
CreatedbyName: null,
Ssn: null,
Contacts: {
Emails: [
{
Email: 'asdg@gmail.com',
Status: {
Id: 150,
Name: 'Active'
},
Updated: '2014-12-09T00:50:23.903',
Updatedby: null,
UpdatebyName: null,
Created: '2014-05-26T10:31:15.44',
Createdby: null,
CreatedbyName: null,
ParentId: 1052,
Id: 326,
UpdateStatus: null,
UpdateResult: {
Result: null,
Message: null
},
PreparedForEdit: true
}
],
Phones: [
{
Number: '(111) 555-5155',
Type: {
Id: 154,
Name: 'Cell'
},
Updated: '2014-05-26T10:31:15.41',
Updatedby: null,
UpdatebyName: null,
Created: '2014-05-26T10:31:15.41',
Createdby: null,
CreatedbyName: null,
ParentId: 1052,
Id: 683,
UpdateStatus: null,
UpdateResult: {
Result: null,
Message: null
},
PreparedForEdit: true
},
{
Number: '(718) 444-4444',
Type: {
Id: 155,
Name: 'Fax'
},
Updated: '2014-05-26T10:31:15.427',
Updatedby: null,
UpdatebyName: null,
Created: '2014-05-26T10:31:15.427',
Createdby: null,
CreatedbyName: null,
ParentId: 1052,
Id: 684,
UpdateStatus: null,
UpdateResult: {
Result: null,
Message: null
},
PreparedForEdit: true
}
]
},
SignatoryPrimary: null,
Address: {
OwnerId: 1052,
OwnerType: 1,
HouseNum: '11-12',
Street: '555 Street',
Room: null,
City: 'Floral Park',
State: 'NY',
Zip: '11001',
Status: {
Id: 28,
Name: '8632'
},
Updated: '2014-05-26T10:31:15.393',
Updatedby: null,
UpdatebyName: null,
Created: '2014-05-26T10:31:15.393',
Createdby: null,
CreatedbyName: null,
FullAddress: null,
ShortAddress: null,
Id: 1256,
UpdateStatus: null,
UpdateResult: {
Result: null,
Message: null
},
PreparedForEdit: true
},
Id: 1052,
UpdateStatus: null,
UpdateResult: {
Result: null,
Message: null
},
PreparedForEdit: true
},
Capacity: null,
Updated: '2014-05-26T10:31:15.38',
Updatedby: null,
UpdatebyName: null,
Created: '2014-05-26T10:31:15.38',
Createdby: null,
CreatedbyName: null,
ParentId: 342,
Id: 405,
UpdateStatus: null,
UpdateResult: {
Result: null,
Message: null
},
PreparedForEdit: true
}
}
Как можномы изменили структуру данных, чтобы построить правильную архитектуру?
Вот несколько примеров UX.
Страница контактов
Общая страница