JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources

Filter included resources or way around it

Offen
#890 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Ruby
Sterne
2.3k
Forks
546
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Hi,

Is there currently a way of filtering resources that are included to our response?

ie: I want to get and include books with that response I'll just do

address/shelves?include=books

but what if I would like to filter by only available books?

ie: address/shelves/?include=books&filter[books.available]=true

books.available is just a scope in this case

or is the preffered method to do this by declaring additional relationships in the shelf resource?
like below

class ShelfResource < JSONAPI::Resource
  has_many :books
  has_many :available_books
  ...
end

If the latter, how do I exactly specify the method for finding resources for this relationship?

I've tried that already by adding

def records_for_available_books
  _model.books.available
end

to the shelf resource but I keep getting errors when doing that.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der has_many :books-Beziehung von ShelfResource und der Methode records_for_available_books und verfolge dann, wie include und filter[books.available] behandelt werden. Reproduziere die gemeldeten Fehler und vergleiche die Beziehungsdeklaration mit der angeforderten gefilterten Antwort. Abgeschlossen ist die Aufgabe, wenn die unterstützte Möglichkeit zum Filtern eingeschlossener Bücher festgestellt wurde und das Beispiel funktioniert oder die Einschränkung und der bevorzugte Beziehungsansatz dokumentiert sind.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
ruby
Bereich
api, backend
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.