5 Unidades organizativas
Manuel Aranda Rosales edited this page 2024-06-21 10:40:37 +02:00

Documentation / Documentación - API ogCore

Select Language / Seleccionar Idioma


English

Table of Contents

  1. Introduction
  2. Configuration
  3. Resource Definition
  4. API Operations
  5. Entity Properties
  6. Organizational Unit Input DTO

Introduction

This documentation describes the configuration of API Platform in a Symfony. 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\OrganizationalUnit:
        processor: App\State\Processor\OrganizationalUnitProcessor
        output: App\Dto\Output\OrganizationalUnitOutput
        input: App\Dto\Input\OrganizationalUnitInput
        normalizationContext:
            groups: ['default', 'organizational-unit:read']
        denormalization_context:
            groups: ['organizational-unit:write']
        operations:
            ApiPlatform\Metadata\GetCollection:
                provider: App\State\Provider\OrganizationalUnitProvider
                filters:
                    - 'api_platform.filter.organizational_unit.order'
                    - 'api_platform.filter.organizational_unit.search'
            ApiPlatform\Metadata\Get:
                security: 'is_granted("ORGANIZATIONAL_UNIT_VIEW", object)'
                provider: App\State\Provider\OrganizationalUnitProvider
                securityMessage: 'Sorry, but you are not allowed to access this resource.'
            ApiPlatform\Metadata\Put:
                provider: App\State\Provider\OrganizationalUnitProvider
            ApiPlatform\Metadata\Patch:
                provider: App\State\Provider\OrganizationalUnitProvider
                validationContext:
                    groups: ['organizational-unit:patch']
            ApiPlatform\Metadata\Post: ~
            ApiPlatform\Metadata\Delete: ~

properties:
    App\Entity\OrganizationalUnit:
        id:
            identifier: false
        uuid:
            identifier: true

Resource Definition

App\Entity\OrganizationalUnit

  • Processor: App\State\Processor\OrganizationalUnitProcessor
  • Output: App\Dto\Output\OrganizationalUnitOutput
  • Input: App\Dto\Input\OrganizationalUnitInput
  • Normalization Context: ['default', 'organizational-unit:read']
  • Denormalization Context: ['organizational-unit:write']

API Operations

Organizational Unit Operations

Get Organizational Unit Collection (GetCollection)
  • Provider: App\State\Provider\OrganizationalUnitProvider
  • Filters:
    • Order organizational units: api_platform.filter.organizational_unit.order
    • Search organizational units: api_platform.filter.organizational_unit.search
Get Organizational Unit (Get)
  • Security: Only accessible by users granted ORGANIZATIONAL_UNIT_VIEW permission on the object.
  • Security Message: Sorry, but you are not allowed to access this resource.
  • Provider: App\State\Provider\OrganizationalUnitProvider
Update Organizational Unit (Put)
  • Provider: App\State\Provider\OrganizationalUnitProvider
Partially Update Organizational Unit (Patch)
  • Provider: App\State\Provider\OrganizationalUnitProvider
  • Validation Context: ['organizational-unit:patch']
Create Organizational Unit (Post)
  • Default Operation: ~
Delete Organizational Unit (Delete)
  • Default Operation: ~

Entity Properties

App\Entity\OrganizationalUnit

Fields Required in OrganizationalUnit Endpoint Input

  1. name

    • Type: string
    • Validation: Not blank
    • Groups: organizational-unit:write
  2. parent

    • Type: OrganizationalUnitOutput
    • Groups: organizational-unit:write
  3. description

    • Type: string
    • Groups: organizational-unit:write
  4. location

    • Type: string
    • Groups: organizational-unit:write
  5. projector

    • Type: boolean
    • Groups: organizational-unit:write
  6. board

    • Type: boolean
    • Groups: organizational-unit:write
  7. capacity

    • Type: integer
    • Validation: Greater than 0
    • Groups: organizational-unit:write
  8. comments

    • Type: string
    • Groups: organizational-unit:write
  9. type

    • Type: string
    • Validation: Custom constraint OrganizationalUnitType
    • Groups: organizational-unit:write
  10. networkSettings

    • Type: NetworkSettingsInput
    • Validation: Valid
    • Groups: organizational-unit:write

Español

Tabla de Contenidos

  1. Introducción
  2. Configuración
  3. Definición de Recursos
  4. Operaciones de API
  5. Propiedades de la Entidad
  6. DTO de Entrada de Unidad Organizativa

Introducción

Esta documentación describe la configuración de API Platform en un proyecto Symfony, detallando los recursos, operaciones y propiedades de entidad expuestos a través de la API.

Configuración

La configuración de API se realiza en archivos de configuración Symfony, generalmente en config/packages/api_platform.yaml.

resources:
    App\Entity\OrganizationalUnit:
        processor: App\State\Processor\OrganizationalUnitProcessor
        output: App\Dto\Output\OrganizationalUnitOutput
        input: App\Dto\Input\OrganizationalUnitInput
        normalizationContext:
            groups: ['default', 'organizational-unit:read']
        denormalization_context:
            groups: ['organizational-unit:write']
        operations:
            ApiPlatform\Metadata\GetCollection:
                provider: App\State\Provider\OrganizationalUnitProvider
                filters:
                    - 'api_platform.filter.organizational_unit.order'
                    - 'api_platform.filter.organizational_unit.search'
            ApiPlatform\Metadata\Get:
                security: 'is_granted("ORGANIZATIONAL_UNIT_VIEW", object)'
                provider: App\State\Provider\OrganizationalUnitProvider
                securityMessage: 'Sorry, but you are not allowed to access this resource.'
            ApiPlatform\Metadata\Put:
                provider: App\State\Provider\OrganizationalUnitProvider


            ApiPlatform\Metadata\Patch:
                provider: App\State\Provider\OrganizationalUnitProvider
                validationContext:
                    groups: ['organizational-unit:patch']
            ApiPlatform\Metadata\Post: ~
            ApiPlatform\Metadata\Delete: ~

properties:
    App\Entity\OrganizationalUnit:
        id:
            identifier: false
        uuid:
            identifier: true

Definición de Recursos

App\Entity\OrganizationalUnit

  • Processor: App\State\Processor\OrganizationalUnitProcessor
  • Output: App\Dto\Output\OrganizationalUnitOutput
  • Input: App\Dto\Input\OrganizationalUnitInput
  • Normalization Context: ['default', 'organizational-unit:read']
  • Denormalization Context: ['organizational-unit:write']

Operaciones de API

Operaciones de Unidad Organizativa

Obtener Colección de Unidades Organizativas (GetCollection)
  • Provider: App\State\Provider\OrganizationalUnitProvider
  • Filtros:
    • Ordenar unidades organizativas: api_platform.filter.organizational_unit.order
    • Buscar unidades organizativas: api_platform.filter.organizational_unit.search
Obtener Unidad Organizativa (Get)
  • Security: Solo accesible por usuarios con el permiso ORGANIZATIONAL_UNIT_VIEW sobre el objeto.
  • Mensaje de Seguridad: Sorry, but you are not allowed to access this resource.
  • Provider: App\State\Provider\OrganizationalUnitProvider
Actualizar Unidad Organizativa (Put)
  • Provider: App\State\Provider\OrganizationalUnitProvider
Actualización Parcial de Unidad Organizativa (Patch)
  • Provider: App\State\Provider\OrganizationalUnitProvider
  • Validation Context: ['organizational-unit:patch']
Crear Unidad Organizativa (Post)
  • Operación Predeterminada: ~
Eliminar Unidad Organizativa (Delete)
  • Operación Predeterminada: ~

Propiedades de la Entidad

App\Entity\OrganizationalUnit

  • id:

    • Identifier: false
  • uuid:

    • Identifier: true

DTO de Entrada de Unidad Organizativa

Fields Required in OrganizationalUnit Endpoint Input

  1. name

    • Type: string
    • Validation: Not blank
    • Groups: organizational-unit:write
  2. parent

    • Type: OrganizationalUnitOutput
    • Groups: organizational-unit:write
  3. description

    • Type: string
    • Groups: organizational-unit:write
  4. location

    • Type: string
    • Groups: organizational-unit:write
  5. projector

    • Type: boolean
    • Groups: organizational-unit:write
  6. board

    • Type: boolean
    • Groups: organizational-unit:write
  7. capacity

    • Type: integer
    • Validation: Greater than 0
    • Groups: organizational-unit:write
  8. comments

    • Type: string
    • Groups: organizational-unit:write
  9. type

    • Type: string
    • Validation: Custom constraint OrganizationalUnitType
    • Groups: organizational-unit:write
  10. networkSettings

    • Type: NetworkSettingsInput
    • Validation: Valid
    • Groups: organizational-unit:write