Add Usuarios

master
Manuel Aranda Rosales 2024-06-20 09:24:29 +02:00
parent 667fb2e573
commit 4292e8e367
1 changed files with 138 additions and 0 deletions

138
Usuarios.md 100644

@ -0,0 +1,138 @@
Aquí tienes la documentación en formato Wiki en español para tu configuración de API Platform en Symfony 3:
---
# Documentación de la API - API Platform con Symfony 3
## Índice
1. [Introducción](#introducción)
2. [Instalación](#instalación)
3. [Configuración](#configuración)
4. [Definición de Recursos](#definición-de-recursos)
5. [Operaciones de API](#operaciones-de-api)
6. [Propiedades del Entidad](#propiedades-de-la-entidad)
## Introducción
Esta documentación describe la configuración de API Platform en un proyecto Symfony 3. Se detallan los recursos, operaciones y propiedades de las entidades expuestas a través de la API.
## Instalación
1. **Requisitos previos**:
- Symfony 3.x instalado.
- Composer instalado.
2. **Instalación de API Platform**:
```bash
composer require api-platform/core
```
## Configuración
La configuración de la API se realiza en los archivos de configuración de Symfony, generalmente en `config/packages/api_platform.yaml` o un archivo similar.
```yaml
resources:
App\Entity\User:
input: App\Dto\Input\UserInput
output: App\Dto\Output\UserOutput
processor: App\State\Processor\UserProcessor
normalization_context:
groups: ['default', 'user:read']
denormalization_context:
groups: ['user:write']
operations:
ApiPlatform\Metadata\GetCollection:
provider: App\State\Provider\UserProvider
filters:
- 'api_platform.filter.user.order'
- 'api_platform.filter.user.search'
- 'api_platform.filter.user.boolean'
ApiPlatform\Metadata\Get:
provider: App\State\Provider\UserProvider
ApiPlatform\Metadata\Put:
provider: App\State\Provider\UserProvider
ApiPlatform\Metadata\Patch:
provider: App\State\Provider\UserProvider
ApiPlatform\Metadata\Post:
security: 'is_granted("ROLE_SUPER_ADMIN")'
validationContext:
groups: [ 'default', 'user:post' ]
ApiPlatform\Metadata\Delete:
security: 'is_granted("ROLE_SUPER_ADMIN")'
reset_password:
provider: App\State\Provider\UserProvider
class: ApiPlatform\Metadata\Put
method: PUT
input: App\Dto\Input\UserInput
uriTemplate: /users/{uuid}/reset-password
controller: App\Controller\ResetPasswordAction
validationContext:
groups: [ 'user:reset-password' ]
properties:
App\Entity\User:
id:
identifier: false
uuid:
identifier: true
```
## Definición de Recursos
### App\Entity\User
- **Entrada (input)**: `App\Dto\Input\UserInput`
- **Salida (output)**: `App\Dto\Output\UserOutput`
- **Procesador**: `App\State\Processor\UserProcessor`
- **Contexto de Normalización**: `['default', 'user:read']`
- **Contexto de Desnormalización**: `['user:write']`
## Operaciones de API
### Colección de Usuarios (GetCollection)
- **Proveedor**: `App\State\Provider\UserProvider`
- **Filtros**:
- Ordenar usuarios: `api_platform.filter.user.order`
- Buscar usuarios: `api_platform.filter.user.search`
- Filtro booleano: `api_platform.filter.user.boolean`
### Obtener Usuario (Get)
- **Proveedor**: `App\State\Provider\UserProvider`
### Actualizar Usuario (Put)
- **Proveedor**: `App\State\Provider\UserProvider`
### Modificar Parcialmente Usuario (Patch)
- **Proveedor**: `App\State\Provider\UserProvider`
### Crear Usuario (Post)
- **Seguridad**: Solo los usuarios con el rol `ROLE_SUPER_ADMIN` pueden acceder.
- **Contexto de Validación**: `['default', 'user:post']`
### Eliminar Usuario (Delete)
- **Seguridad**: Solo los usuarios con el rol `ROLE_SUPER_ADMIN` pueden acceder.
### Resetear Contraseña (reset_password)
- **Proveedor**: `App\State\Provider\UserProvider`
- **Clase**: `ApiPlatform\Metadata\Put`
- **Método**: `PUT`
- **Entrada (input)**: `App\Dto\Input\UserInput`
- **URI**: `/users/{uuid}/reset-password`
- **Controlador**: `App\Controller\ResetPasswordAction`
- **Contexto de Validación**: `['user:reset-password']`
## Propiedades de la Entidad
### App\Entity\User
- **id**:
- **Identificador**: `false`
- **uuid**:
- **Identificador**: `true`
---
Esta estructura proporciona una visión clara y organizada de la configuración de API Platform para la entidad `User` en Symfony 3. Puedes añadir más detalles o ejemplos según necesites.