api-platform/create-client

"Cannot stringify arbitrary non-POJOs" error in Nuxt projects

Opened this issue · 2 comments

API Platform version(s) affected: 3.2.18

Description
Clients generated for Nuxt will fail with: "Cannot stringify arbitrary non-POJOs"

How to reproduce

  • Create an Entity e.g. "Animal"
  • Create a Nuxt project
  • Create a client (e.g. yarn create @api-platform/client https://localhost/ . --generator nuxt --resource animal )
  • Load https://localhost/animal
    You'll get a message saying: "Cannot stringify arbitrary non-POJOs"

Possible Solution

  • One solution is to edit nuxt.config.js and add the following:
  experimental: {
    renderJsonPayloads: false,
  },
  • Another possible solution is to edit ./nuxt/stores/animal/list.ts and add shallowRef() to setHubUrl function:
setHubUrl(hubUrl?: URL) {
      this.hubUrl = shallowRef(hubUrl);
    },
  • Another solution is to edit ./composables/api.ts and add shallowRef() to all onResponse()` functions.

Additional Context
This is occurring with all projects using Nuxt 3.4 or later.
More info at: https://nuxt.com/blog/v3-4#payload-enhancements

J3m5 commented

Hello @robregonm
I think we could just store the URL as a string and not as a URL object, what do you think?

@J3m5 That's another good and simple workaround. Agree.