JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources

Issue with `fields` request params

Aperta
#282 7 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Type: Bug
Lingua principale
Ruby
Stelle
2.3k
Fork
546
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

As I'm playing with the Sparse Fieldsets, I encountered some issues.

With the following resources:

class UserResource < JSONAPI::Resource
  has_one :status, class_name: 'UserStatus'
  attributes :name, :email
end
class UserStatusResource < JSONAPI::Resource
  has_one :user
  attributes :foo, :bar
end

Relationships are removed from then response when using fields, so we can't link a user to his status.

/users?include=status&fields[users]=name

Association with custom class_name failed with fields.

/users?include=status&fields[users]=name&fields[user-statuses]=foo

returns:

{:errors=>
  [{:title=>"Invalid resource",
    :detail=>"user-statuses is not a valid resource.",
    :id=>nil,
    :href=>nil,
    :code=>101,
    :path=>nil,
    :links=>nil,
    :status=>"bad_request"},
   {:title=>"Invalid resource",
    :detail=>"user-statuses is not a valid resource.",
    :id=>nil,
    :href=>nil,
    :code=>101,
    :path=>nil,
    :links=>nil,
    :status=>"bad_request"}]}

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia con gli esempi di UserResource e UserStatusResource e riproduci le due richieste usando include=status e i parametri fields. Traccia la gestione degli sparse fieldset per le relazioni e della chiave di risorsa personalizzata class_name. Il lavoro è completo quando la relazione rimane collegabile e user-statuses viene accettato senza gli errori di risorsa non valida segnalati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
ruby
Ambito
api
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.