Add Usuarios
parent
667fb2e573
commit
4292e8e367
|
@ -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.
|
Loading…
Reference in New Issue