api-platform / admin

A beautiful and fully-featured administration interface builder for hypermedia APIs
https://api-platform.com/docs/admin/
MIT License
477 stars 131 forks source link

API schema is undefined React Admin with Hydra problem with introspect #525

Open KlaudiaBrzywcy opened 5 months ago

KlaudiaBrzywcy commented 5 months ago

We recently decided to use React Admin with API Platform for our internal app. React Admin linked your repo in their documentation, with a comment that this is a suitable dataProvider for our set up. Unfortunately, it doesn’t work as we hoped, and I wonder why.

Let me guide you through our case. We have configured React admin with Next.js (v 13.4.19) with Hydra (JSON-LD) as the backend.

1) At first, we implemented dataProvider as it is, regarding to the repo linked in the documentation: https://github.com/api-platform/admin/blob/main/src/hydra/dataProvider.ts but we were not able to display the API data at all, with the error as on the screen nr 1

nr 1

2) Then mostly for debugging purposes, we have added a hacky solution in the code to make apiSchema optional: screen nr 2 and we were able to display some data and even create some views as usersList, singleUser, userEdit but not everything worked as one might expect. Check out the chips fields it remains empty: screen nr 3.

nr 2 nr 3

3) Then we tried to edit the user in edit view: screen 4

nr 4

4) After the editing for few seconds you can see the changes on usersList, even the chips fields work: screen 5

nr 5

5) And then it all disappears with an error message: screen 6

nr 6

From what we have observed, there is an introspection issue and apiSchema returns an undefined value when we try to log it.

PawelSuwinski commented 4 months ago

apiSchema is not optional, admin needs to get it correctly parsed, first of all try to check if it works: https://github.com/api-platform/api-doc-parser?tab=readme-ov-file#usage

If not fix generated docs jsonld document or pass custom (ex. proxied) instance of parser to HydraAdmin.