|
1 | 1 | # The API Platform Admin
|
2 | 2 |
|
3 |
| - |
| 3 | +<video controls autoplay playsinline muted loop> |
| 4 | + <source src="./images/admin-demo.mp4" type="video/mp4"/> |
| 5 | + <source src="./images/admin-demo.webm" type="video/webm"/> |
| 6 | + Sorry, your browser doesn't support HTML5 video. |
| 7 | +</video> |
4 | 8 |
|
5 |
| -API Platform Admin is a tool to automatically create a beautiful (Material Design) and fully-featured administration interface |
6 |
| -for any API supporting [the Hydra Core Vocabulary](https://www.hydra-cg.com/), exposing an [OpenAPI documentation](https://www.openapis.org/) |
7 |
| -or other API specification formats supported by [`@api-platform/api-doc-parser`](https://github.com/api-platform/api-doc-parser). |
| 9 | +API Platform **Admin** is a tool to automatically create a beautiful (Material Design) and fully-featured administration interface |
| 10 | +for any API implementing specification formats supported by [`@api-platform/api-doc-parser`](https://github.com/api-platform/api-doc-parser). |
8 | 11 |
|
9 |
| -API Platform Admin is the perfect companion of APIs created |
10 |
| -using [the API Platform framework](https://api-platform.com), but also supports APIs written with any other programming language or framework as long as they expose a standard Hydra API documentation or an OpenAPI documentation. |
| 12 | +In particular, that includes: |
11 | 13 |
|
12 |
| -API Platform Admin is a 100% standalone Single-Page-Application written in TypeScript with no coupling to the server part, |
13 |
| -according to the API-first paradigm. |
| 14 | +- APIs using [the Hydra Core Vocabulary](https://www.hydra-cg.com/) |
| 15 | +- APIs exposing an [OpenAPI documentation](https://www.openapis.org/) |
14 | 16 |
|
15 |
| -API Platform Admin parses the API documentation then uses the awesome [React Admin](https://marmelab.com/react-admin/) |
16 |
| -library to expose a nice, responsive, management interface (Create-Retrieve-Update-Delete) for all documented resource types. |
| 17 | +Of course, API Platform Admin is the perfect companion of APIs created |
| 18 | +using [the API Platform framework](https://api-platform.com). But it also supports APIs written with any other programming language or framework as long as they expose a standard Hydra or OpenAPI documentation. |
17 | 19 |
|
18 |
| -You can **customize everything** by using provided React Admin and [MUI](https://mui.com/) components, or by writing your custom [React](https://reactjs.org/) components. |
| 20 | +## Based On React Admin |
| 21 | + |
| 22 | +API Platform Admin is a Single Page Application (SPA), based on [React Admin](https://marmelab.com/react-admin/), a powerful frontend framework for building B2B applications on top of REST/GraphQL APIs, written in TypeScript and React. |
| 23 | + |
| 24 | +Thanks to its built-in **guessers**, API Platform Admin parses the API documentation then uses React Admin to expose a nice, responsive management interface (Create-Retrieve-Update-Delete, i.e. CRUD) for all documented resource types. |
| 25 | + |
| 26 | +Afterwards, you can **customize everything** by using the numerous components provided [React Admin](https://marmelab.com/react-admin/documentation.html) and [MUI](https://mui.com/), or even writing your own [React](https://reactjs.org/) components. |
| 27 | + |
| 28 | +<iframe src="https://www.youtube-nocookie.com/embed/UyAkN85wGNk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen style="aspect-ratio: 16 / 9;width:100%;margin-bottom:1em;"></iframe> |
19 | 29 |
|
20 | 30 | <p align="center" class="symfonycasts"><a href="https://symfonycasts.com/screencast/api-platform/react-admin?cid=apip"><img src="../symfony/images/symfonycasts-player.png" alt="React Admin Screencast"><br>Watch the React Admin screencast</a></p>
|
21 | 31 |
|
22 | 32 | ## Features
|
23 | 33 |
|
24 |
| -- Automatically generates an admin interface for all the resources of the API thanks to the hypermedia features of Hydra or to the OpenAPI documentation |
25 |
| -- Generates 'list', 'create', 'show', and 'edit' screens, as well as a delete button |
26 |
| -- Generates suitable inputs and fields according to the API doc (e.g. number HTML input for numbers, checkbox for booleans, selectbox for relationships...) |
27 |
| -- Generates suitable inputs and fields according to Schema.org types if available (e.g. email field for `https://schema.org/email`) |
28 |
| -- Handles relationships |
29 |
| -- Supports pagination |
30 |
| -- Supports filters and ordering |
31 |
| -- Automatically validates whether a field is mandatory client-side according to the API description |
32 |
| -- Sends proper HTTP requests to the API and decodes them using Hydra and JSON-LD formats if available |
| 34 | +Simply by reading your API documentation, API Platform Admin provides the following features: |
| 35 | + |
| 36 | +- Generate 'list', 'create', 'show', and 'edit' views for all resources |
| 37 | +- Automatically detect the type for inputs and fields |
| 38 | +- Client-side [validation](./validation.md) on required inputs |
| 39 | +- Pagination |
| 40 | +- Filtering and ordering |
| 41 | +- Easily view and edit [related records](./handling-relations.md) |
| 42 | +- Display the related resource’s name instead of its IRI ([using the Schema.org vocabulary](./schema.org.md#displaying-related-resources-name-instead-of-its-iri)) |
33 | 43 | - Nicely displays server-side errors (e.g. advanced validation)
|
34 |
| -- Supports real-time updates with [Mercure](https://mercure.rocks) |
35 |
| -- All the [features provided by React-admin](https://marmelab.com/react-admin/Tutorial.html) can also be used |
36 |
| -- **100% customizable** |
| 44 | +- Real-time updates with [Mercure](https://mercure.rocks) |
| 45 | + |
| 46 | +By leveraging React Admin components, you can further customize the generated interface and get access to many more features: |
| 47 | + |
| 48 | +- Powerful Datagrid components |
| 49 | +- Search and filtering |
| 50 | +- Advanced form validation |
| 51 | +- Undoable mutations |
| 52 | +- Authentication |
| 53 | +- Access Control |
| 54 | +- Internationalization |
| 55 | +- [And many more](https://marmelab.com/react-admin/Features.html) |
| 56 | + |
| 57 | +**Next step:** get your Admin up and running by following the [Getting Started guide](./getting-started.md). |
0 commit comments