commit 876aea04b05c859e55b152930e368c07116e8737 Author: Manuel Aranda Rosales Date: Thu Jun 20 09:23:51 2024 +0200 Add Usuarios diff --git a/Usuarios.md b/Usuarios.md new file mode 100644 index 0000000..5ac27c7 --- /dev/null +++ b/Usuarios.md @@ -0,0 +1,111 @@ +Documentación de la API - API Platform con Symfony 3 +Índice +Introducción +Instalación +Configuración +Definición de Recursos +Operaciones de API +Propiedades del 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 +Requisitos previos: + +Symfony 3.x instalado. +Composer instalado. +Instalación de API Platform: + +bash +Copiar código +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 +Copiar código +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 \ No newline at end of file