Loopback v4 вложенный объект (n.o.) Без создания этого n.o. как отдельная модель - PullRequest
0 голосов
/ 24 апреля 2019

Я начал с Loopback 4 неделю назад.И я застрял в некоторых проблемах на долгое время.

Я пытаюсь построить модель пользователя

@model()
export class Address {
  @property() addressLine1: string;
  @property() addressLine2: string;
  @property() pin: string;
}

@model()
export class User {
  @property() email: string;
  @property() password: string;
  @property() phone: string;
  @property() address: Address;
}

Проблема № 1

Когда я пытаюсь сохранить модель из конечной точки API, я получаю следующую ошибку:

Unhandled error in POST /users: 500 Error: can't resolve reference #/components/schemas/Address from id #

Я считаю, что loopback пытается сохранить адрес в качестве модели,Мне нужно, чтобы этот адрес был сохранен как поле json в DynamoDB вместо создания новой модели.

Есть ли ключ / свойство / параметр, которые необходимо передать в модель, с помощью которых я могу игнорировать его при создании?Я просмотрел учебные пособия и документы по API, но не нашел ничего полезного.

Issue # 2

Address Модель отображается в Swagger только тогда, когда @model()к нему добавляется аннотация

Есть ли более простой способ вставить Address в сваггер без @model?

Примечание: я использую разъем DynamoDB: lb-динамод-разъем

1 Ответ

1 голос
/ 25 апреля 2019

Я думаю, что ниже должно работать для вас.

@model()
export class Address extends Model {
  @property() addressLine1: string;
  @property() addressLine2: string;
  @property() pin: string;
}

@model()
export class User extends Entity {
  @property() email: string;
  @property() password: string;
  @property() phone: string;
  @property({
    type: 'object',
  }) address: Address;
}

Хотя я не работал с динамо-разъемом дБ.Но это должно сработать в соответствии с петлевой моделью.

...