Update Usuarios

master
Manuel Aranda Rosales 2024-06-20 09:37:20 +02:00
parent 3c1f2be567
commit 41eee83017
1 changed files with 158 additions and 24 deletions

@ -1,20 +1,33 @@
# Documentación de la API - ogCore
Claro, aquí tienes la documentación en formato Wiki con un selector de idioma (Español e Inglés):
## Índice
---
1. [Introducción](#introducción)
2. [Configuración](#configuración)
3. [Definición de Recursos](#definición-de-recursos)
4. [Operaciones de API](#operaciones-de-api)
5. [Propiedades del Entidad](#propiedades-de-la-entidad)
# Documentation / Documentación - API Platform with Symfony 3
## Introducción
## Select Language / Seleccionar Idioma
Esta documentación describe en endpoint "users". Se detallan los recursos, operaciones y propiedades de las entidades expuestas a través de la API.
- [English](#english)
- [Español](#español)
## 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` . La configuración API First de los recursos se encuentran dentro de `config/api_platform`.
## English
### Table of Contents
1. [Introduction](#introduction)
2. [Configuration](#configuration)
3. [Resource Definition](#resource-definition)
4. [API Operations](#api-operations)
5. [Entity Properties](#entity-properties)
### Introduction
This documentation describes the configuration of API Platform in a Symfony 6 project. It details the resources, operations, and entity properties exposed through the API.
### Configuration
API configuration is done in Symfony configuration files, usually in `config/packages/api_platform.yaml`.
```yaml
resources:
@ -63,9 +76,130 @@ properties:
identifier: true
```
## Definición de Recursos
### Resource Definition
### App\Entity\User
#### App\Entity\User
- **Input**: `App\Dto\Input\UserInput`
- **Output**: `App\Dto\Output\UserOutput`
- **Processor**: `App\State\Processor\UserProcessor`
- **Normalization Context**: `['default', 'user:read']`
- **Denormalization Context**: `['user:write']`
### API Operations
#### Get User Collection (GetCollection)
- **Provider**: `App\State\Provider\UserProvider`
- **Filters**:
- Order users: `api_platform.filter.user.order`
- Search users: `api_platform.filter.user.search`
- Boolean filter: `api_platform.filter.user.boolean`
#### Get User (Get)
- **Provider**: `App\State\Provider\UserProvider`
#### Update User (Put)
- **Provider**: `App\State\Provider\UserProvider`
#### Partially Update User (Patch)
- **Provider**: `App\State\Provider\UserProvider`
#### Create User (Post)
- **Security**: Only users with the role `ROLE_SUPER_ADMIN` can access.
- **Validation Context**: `['default', 'user:post']`
#### Delete User (Delete)
- **Security**: Only users with the role `ROLE_SUPER_ADMIN` can access.
#### Reset Password (reset_password)
- **Provider**: `App\State\Provider\UserProvider`
- **Class**: `ApiPlatform\Metadata\Put`
- **Method**: `PUT`
- **Input**: `App\Dto\Input\UserInput`
- **URI**: `/users/{uuid}/reset-password`
- **Controller**: `App\Controller\ResetPasswordAction`
- **Validation Context**: `['user:reset-password']`
### Entity Properties
#### App\Entity\User
- **id**:
- **Identifier**: `false`
- **uuid**:
- **Identifier**: `true`
---
## Español
### Índice
1. [Introducción](#introducción)
2. [Configuración](#configuración)
3. [Definición de Recursos](#definición-de-recursos)
4. [Operaciones de API](#operaciones-de-api)
5. [Propiedades de la 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.
### 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`.
```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`
@ -73,32 +207,32 @@ properties:
- **Contexto de Normalización**: `['default', 'user:read']`
- **Contexto de Desnormalización**: `['user:write']`
## Operaciones de API
### Operaciones de API
### Colección de Usuarios (GetCollection)
#### 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)
#### Obtener Usuario (Get)
- **Proveedor**: `App\State\Provider\UserProvider`
### Actualizar Usuario (Put)
#### Actualizar Usuario (Put)
- **Proveedor**: `App\State\Provider\UserProvider`
### Modificar Parcialmente Usuario (Patch)
#### Modificar Parcialmente Usuario (Patch)
- **Proveedor**: `App\State\Provider\UserProvider`
### Crear Usuario (Post)
#### 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)
#### Eliminar Usuario (Delete)
- **Seguridad**: Solo los usuarios con el rol `ROLE_SUPER_ADMIN` pueden acceder.
### Resetear Contraseña (reset_password)
#### Resetear Contraseña (reset_password)
- **Proveedor**: `App\State\Provider\UserProvider`
- **Clase**: `ApiPlatform\Metadata\Put`
- **Método**: `PUT`
@ -107,9 +241,9 @@ properties:
- **Controlador**: `App\Controller\ResetPasswordAction`
- **Contexto de Validación**: `['user:reset-password']`
## Propiedades de la Entidad
### Propiedades de la Entidad
### App\Entity\User
#### App\Entity\User
- **id**:
- **Identificador**: `false`
@ -119,4 +253,4 @@ properties:
---
Esta estructura proporciona una visión clara y organizada de la configuración de API Platform para la entidad `User` en Symfony .
Con este formato, puedes seleccionar el idioma que prefieras y acceder a la documentación correspondiente.