gordoneliel

gordoneliel

Hi!

I’ve got a resource with a bunch of attributes that show up in the json response when queried, but this response does not included any aggregates on the resource.

Do I have to do anything to add aggregates to the json api response?

Showing Posts 1 to 7

zachdaniel

zachdaniel

Creator of Ash

The JSON:API provides the fields query option, which controls what fields to return for an individual resource type. For example, fields[type]=foo,bar would return the foo and bar fields for anything w/ type type. The default value of fields is just the attributes. You can set the default_fields to include the attributes and aggregates, or request them on demand.

i.e

json_api do
  default_fields [:foo, :bar, :baz]
  ...
end

or
?fields[type]=foo,bar,baz

gordoneliel

gordoneliel OP

Thanks for answering @zachdaniel . default_fields is what I’m looking for, however, trying that is throwing a no such import default_fields/1 error. Any idea why?

Also trying fields[json_api_resource_type]="foo,aggregate_bar" throws an error as well:
** (UndefinedFunctionError) function nil.embedded?/0 is undefined

This only happens when I add the aggregate field aggregate_bar to the fields query

zachdaniel

zachdaniel

Creator of Ash

Ah, I was wrong, it looks like default_fields is on a route by route basis. We should probably add a top level version of that as well.

Got a stack trace for that error? I think there is likely a bug somewhere :slight_smile:

gordoneliel

gordoneliel OP

Here is a trace:

 ** (UndefinedFunctionError) function nil.embedded?/0 is undefined

 nil.embedded?()

 (ash_json_api 0.34.1) lib/ash_json_api/serializer.ex:698: anonymous fn/5 in AshJsonApi.Serializer.serialize_attributes/2

 (elixir 1.15.7) lib/enum.ex:2510: Enum."-reduce/3-lists^foldl/2-0-"/3

(ash_json_api 0.34.1) lib/ash_json_api/serializer.ex:456: AshJsonApi.Serializer.serialize_one_record/2

(elixir 1.15.7) lib/enum.ex:1693: Enum."-map/2-lists^map/1-1-"/2

 (ash_json_api 0.34.1) lib/ash_json_api/serializer.ex:39: AshJsonApi.Serializer.serialize_many/3

 (ash_json_api 0.34.1) lib/ash_json_api/controllers/response.ex:50: AshJsonApi.Controllers.Response.render_many/5

 (form_service 0.1.0) deps/plug/lib/plug/router.ex:246: anonymous fn/4 in FormServiceWeb.Forms.Router.dispatch/2

Let me know if this helps :slight_smile:

zachdaniel

zachdaniel

Creator of Ash

Ah, right okay that will be a straightforward fix. Can you open an issue on ash_json_api?

gordoneliel

gordoneliel OP

Opened a GH issue here

zachdaniel

zachdaniel

Creator of Ash

Thanks! Fixed in main :slight_smile:

— All posts loaded —

Where Next? Top

Trending in Questions Top

water
I’m aware of 2 such projects, are there others? git: GitHub - team-alembic/realworld: A fullstack Phoenix LiveView application with back...
New
katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
peck
Hi everyone. My team and I have been working on a fairly modest app based around video streaming and chat, but we’ve landed a customer t...
New
bradley
I really like the adapter patterns that ecto, nebulex, waffle, etc. use and would love find something similar for a key management servic...
New
unaware8150
Hello folks! So at work, we are seeing some situations where we have to define some “fixed” strings that are used across the codebase in...
New
Alvinkariuki
How Can I Optimise Compile Time Dependencies I have been building an elixir application for about 2 years now. Many modules and files ha...
New

Other Trending Topics Top

budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
mudasobwa
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
budgie
I love Elixir. It’s one of 2 programming languages I’ve ever fallen in love with. But I don’t use it anymore. Serverless was the promis...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews