Documentation / Documentación - API ogCOre
Select Language / Seleccionar Idioma
English
Table of Contents
Introduction
This documentation describes the configuration of API Platform in a Symfony 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
file.
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
Resource Definition
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
- Order users:
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
- Identifier:
-
uuid:
- Identifier:
true
- Identifier:
User Input DTO
Fields Required in User Endpoint Input
-
username
- Type: string
- Validation: Not blank
- Groups:
user:write
-
allowedOrganizationalUnits
- Type: array of
OrganizationalUnit
- Groups:
user:write
- API Property:
readableLink: false, writableLink: false
- Type: array of
-
password
- Type: string
- Validation: Not blank (for
user:post
), Minimum length: 8 (foruser:write
,user:post
) - Groups:
user:write
-
enabled
- Type: boolean
- Validation: Not null
- Groups:
user:write
- Default: true
-
userGroups
- Type: array of
UserGroup
- Groups:
user:write
- API Property:
readableLink: false, writableLink: false
- Type: array of
-
currentPassword
- Type: string
- Validation: Not blank (for
user:reset-password
) - Groups:
user:reset-password
-
newPassword
- Type: string
- Validation: Not blank, Minimum length: 8 (for
user:reset-password
) - Groups:
user:reset-password
-
repeatNewPassword
- Type: string
- Validation: Not blank, Minimum length: 8, Must match
newPassword
(foruser:reset-password
) - Groups:
user:reset-password
Español
Índice
- Introducción
- Configuración
- Definición de Recursos
- Operaciones de API
- Propiedades de la Entidad
- DTO de Entrada de Usuario
Introducción
Esta documentación describe la configuración de API Platform en un proyecto Symfony. 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
.
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
- Ordenar usuarios:
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
- Identificador:
-
uuid:
- Identificador:
true
- Identificador:
DTO de Entrada de Usuario
Campos Requeridos en la Entrada del Endpoint de Usuario
-
username
- Tipo: string
- Validación: No vacío
- Grupos:
user:write
-
allowedOrganizationalUnits
- Tipo: array de
OrganizationalUnit
- Grupos:
user:write
- Propiedad API:
readableLink: false, writableLink: false
- Tipo: array de
-
password
- Tipo: string
- Validación: No vacío (para
user:post
), Longitud mínima: 8 (parauser:write
,user:post
) - Grupos:
user:write
-
enabled
- Tipo: boolean
- Validación: No nulo
- Grupos:
user:write
- Por defecto: true
-
userGroups
- Tipo: array de
UserGroup
- Grupos:
user:write
- Propiedad API:
readableLink: false, writableLink: false
- Tipo: array de
-
currentPassword
- Tipo: string
- Validación: No vacío (para
user:reset-password
) - Grupos:
user:reset-password
-
newPassword
- Tipo: string
- Validación: No vacío, Longitud mínima: 8 (para
user:reset-password
) - Grupos:
user:reset-password
-
repeatNewPassword
- Tipo: string
- Validación: No vacío, Longitud mínima: 8, Debe coincidir con
newPassword
(parauser:reset-password
) - Grupos:
user:reset-password
Con este formato, puedes seleccionar el idioma que prefieras y acceder a la documentación correspondiente.
Table of Contents
- Documentation / Documentación - API ogCOre
- Select Language / Seleccionar Idioma
- English
- Table of Contents
- Introduction
- Configuration
- Resource Definition
- API Operations
- Get User Collection (GetCollection)
- Get User (Get)
- Update User (Put)
- Partially Update User (Patch)
- Create User (Post)
- Delete User (Delete)
- Reset Password (reset_password)
- Entity Properties
- User Input DTO
- Español
- Índice
- Introducción
- Configuración
- Definición de Recursos
- Operaciones de API
- Colección de Usuarios (GetCollection)
- Obtener Usuario (Get)
- Actualizar Usuario (Put)
- Modificar Parcialmente Usuario (Patch)
- Crear Usuario (Post)
- Eliminar Usuario (Delete)
- Resetear Contraseña (reset_password)
- Propiedades de la Entidad
- DTO de Entrada de Usuario