Serializing an array of resources
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Documentação
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Domínio
- backend-api-design, documentation
Direção de pesquisa
Comece pelo exemplo de serializer na documentação vinculada e compare-o com a ação index de ProductsController que usa Product.where(visible: true). Verifique como arrays de objetos ProductResource devem ser serializados e, em seguida, esclareça a documentação para o caso de uma collection filtrada; o trabalho estará concluído quando o fluxo de arrays estiver inequívoco.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
The documentation shows a clear example on how to do it for one resource:
post = Post.find(1)
JSONAPI::ResourceSerializer.new(PostResource).serialize_to_hash(PostResource.new(post, nil))
But how does one serialize an array of resources?
For example, suppose this is my controller:
class ProductsController < ApplicationController
def index
@products = Product.where(visible: true)
render json: JSONAPI::ResourceSerializer.new(ProductResource).serialize_to_hash(ProductResource.new(@products, nil))
end
def show
product = Product.find(params[:id])
render json: JSONAPI::ResourceSerializer.new(Admin::ProductResource).serialize_to_hash(ProductResource.new(product, nil))
end
end
GET /products/2
The show method returns 1 resource in JSON API compliant format. Even better, I could remove the entire show method and it will still work because the inherited methods do something similar.
GET /products/
However, the index method returns a 500 error. Removing the index method entirely would partially solve the problem, I get an array back containing ALL products. But what if I need it to return only the active=true products? For that I need an array serializer no?
Suggestions?
Am I missing something?
Is the documentation incomplete?
Have I perhaps not understood how to work with JSON API? I've got the impression the idea is to not add any logic to your controllers at all and let the URLs do all the work?
- Linguagem predominante
- Ruby
- Estrelas
- 2.3k
- Forks
- 547
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de JSONAPI-Resources/jsonapi-resources
-
Fix incorrect translation key for parameter_not_allowed.detailTalvez já em andamento @pozzer assumiu há 598 dias. Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
-
ArgumentError with Rails 8.1Talvez já em andamento @SAY-5 assumiu há 55 dias. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 50/100
JSONAPI-Resources/jsonapi-resources#1488 · 1 comentário ·
-
Rails 8.1: jsonapi_resources DSL fails to generate relationship routes due to Resource#initialize signature changeTalvez livre de novo Um pull request para esta issue foi fechado sem ser mesclado. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 42/100
JSONAPI-Resources/jsonapi-resources#1479 · 2 comentários ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 30/100
JSONAPI-Resources/jsonapi-resources#1477 · 3 comentários · 1 reação ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
Todas as issues de JSONAPI-Resources/jsonapi-resources
Issues semelhantes
-
Unconfirmed users who reset their password are stuck on sign in with no way to send confirmationAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 79/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
-
L: github:actions L: javascript
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
dependabot/dependabot-core#16615 ·
Mantenedores costumam responder em até 1 dia
-
Kanton Column not HiddenAbertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 61/100
hitobito/hitobito_pfadi_de#164 ·
Mantenedores costumam responder em até 5 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 7 dias