loopbackio / loopbackio/loopback-next
Empty relation should return empty array
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 5.1k
- Forks
- 1.1k
- Ø Merge
- 2 T. 21 Std.
- Gemergte PRs (30 T.)
- 27
Beschreibung
Describe the bug
Hi,
I'm migrating a project from loopback 3 to loopback 4 and I found inconsistencies between the two regarding relations.
I am querying a model which have a HasMany relation on another model like this:
export class User extends Entity {
...
@hasMany(() => Order)
orders: Order[];
...
}
The query looks like this:
/users?filter={"include": ["orders"]}
In the answer, I got an orders property for users that have orders but no orders property for users that don't. Here is an API response for example:
[
...
{
"id": "__",
"email": "admin@example.com",
},
{
"id": "__",
"email": "support@example.com",
"orders": [
{...}
]
},
...
]
Is this an intended behavior in loopback 4 ? I find this much harder to deal with undefined property instead of empty array when querying model with relation.
Best regards
Logs
No response
Additional information
No response
Reproduction
https://codesandbox.io/s/falling-frost-qn03xh?file=/src/models/user.model.ts
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der im Issue verknüpften CodeSandbox-Reproduktion und untersuche, wie eine eingeschlossene HasMany-Relation in der users-Antwort dargestellt wird. Vergleiche users mit und ohne orders und verfolge anschließend die Verarbeitung von includes, um die erwartete Antwortstruktur zu bestimmen. Abgeschlossen ist die Aufgabe, wenn das Verhalten definiert und sowohl für befüllte als auch für leere Relationen abgedeckt ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- api, backend
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 42/100