loopbackio / loopbackio/loopback-next
Empty relation should return empty array
Nessuno ha ancora preso questa issue.
- Lingua principale
- TypeScript
- Stelle
- 5.1k
- Fork
- 1.1k
- Merge medio
- 2g 21h
- PR unite (30g)
- 27
Descrizione
### 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
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia con la riproduzione CodeSandbox collegata nell’issue e verifica come viene rappresentata una relazione HasMany inclusa nella risposta di users. Confronta users con e senza orders, quindi segui la gestione di includes per determinare la forma prevista della risposta. Il lavoro è completato quando il comportamento è definito e coperto sia per le relazioni popolate sia per quelle vuote.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript
- Ambito
- api, backend
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 42/100