GraphQL object fulfilled by querying two different data-stores; how to do this efficiently?
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- fsharp, graphql
- Ambito
- api, backend-api-design
Direzione di ricerca
Inizia dal punto di ingresso Define.Object("Book", ...) menzionato nell’issue e leggi la documentazione o gli esempi circostanti sulla risoluzione degli oggetti e dei campi. Una soluzione è completata quando le query che usano solo campi veloci usano fetchFastFields, le query che richiedono campi lenti usano fetchSlowFields e nessuna delle due funzioni viene chiamata più di una volta per Book.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
This is a question rather than an issue (although it could be turned into an issue if no good solution is found!)
Suppose I have a library of books:
type Book = {
id : ID!
title : String!
author : String!
datePublished : String!
fullText : String!
blurb : String!
}
Some of these fields are "small", and they are stored in a fast data-store (e.g. MySQL, Postgres):
idtitleauthordatePublished
The other fields are "big", and they are stored in a slow data-store (e.g. Amazon S3):
fullTextblurb
I have two functions for fetching the fields:
fetchFastFields : ID -> BookPropertiesFast
fetchSlowFields : ID -> BookPropertiesSlow
The behaviour I want on the back-end is:
- If the query can be fulfilled with only "fast" fields, call
fetchFastFields - If the query has one or more "slow" fields, call
fetchSlowFields - For each
Bookin a query, do not callfetchFastFieldsorfetchSlowFieldsmore than once.
How should I write my Define.Object("Book", ... code to achieve this?
- Lingua principale
- F#
- Stelle
- 406
- Fork
- 74
- Merge medio
- 1g 8h
- PR unite (30g)
- 14
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
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.
Altre issue di fsprojects/FSharp.Data.GraphQL
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
-
fsprojects/FSharp.Data.GraphQL#573 · 1 reazione · 2 assegnatari ·
-
FR: Suave package Aperta
fsprojects/FSharp.Data.GraphQL#566 · 1 commento · 1 reazione · 2 assegnatari ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
Tutte le issue di fsprojects/FSharp.Data.GraphQL
Issue simili
-
bug priority:normal ready-for-dev
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
OpenHands/extensions#626 · 1 commento ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
avniproject/avni-client#2135 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
use-agent-os/agent-os#3276 ·