Как правильно сопоставить вложенный json ответ REST API со множеством ссылок на сущности модели TypeScript? - PullRequest
0 голосов
/ 13 февраля 2020

Когда я запрашиваю некоторые данные о квартире из серверной части REST API Spring из Angular внешнего интерфейса, я получаю полную информацию о моем внутреннем объекте. Проблема в том, что модель на бэк-энде сложна - имеет отношения @OneToMany, @ManyToMany, и я хочу отобразить их на лицевой стороне. Я понятия не имею, как сделать это правильно.

Мой текущий подход - поместить каждое свойство в модель. Но мне нужно, чтобы мои модели спереди были отделены от изменений на внутренней стороне.

Каждый Apartment имеет Address ссылку и Clients внутри json ответа. Я хочу сохранить их в передней модели.

Тестовый ответ:

{
    "responseMessage": "houses fetched successfully",
    "body": [
        {
            "id": 2,
            "address": {
                "id": 1,
                "city": "FakeCity",
                "postalCode": "99-743",
                "street": "FakeStreet",
                "buildingNum": "14",
                "apartmentNum": 21
            },
            "clients": [
                {
                    "id": 3,
                    "firstName": "John",
                    "lastName": "Tester",
                    "email": "example@test.com",
                    "username": "myTestUser",
                    "password": "<hashed>",
                    "currentAddress": 1, //id reference (to prevent circural fetching)
                    "properties": [
                        2  //id reference to propery(apartment) to prevent circural fetching
                    ]
                }
            ],
            "apartmentPicture": null
        }
    ],
    "httpStatus": "OK"
}

Должен ли я:

  1. Создать одну модель для каждой сущности и использовать их в каждой другой модели?
  2. Создать другую модели для каждой страницы (компонента) и получить только необходимую информацию для контекста на странице? (Ко многим моделям)
  3. Какой-то другой подход?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...