Cómo Añadir un Endpoint Personalizado a la API
Desde la versión 2023.1 de FacturaScripts, agregar nuevos endpoints a la API es más sencillo gracias al renovado sistema de enrutamiento. Solo necesitas crear un controlador que herede de ApiController y registrar la ruta en el archivo Init.php de tu plugin.
1. Registrar la Ruta en el Archivo Init.php
En la función init() de tu archivo Init.php, añade la nueva ruta y asígnala al controlador correspondiente. Ejemplo:
<?php
namespace FacturaScripts\Plugins\MyNewPlugin;
use FacturaScripts\Core\Template\InitClass;
use FacturaScripts\Core\Controller\ApiRoot;
use FacturaScripts\Core\Kernel;
class Init extends InitClass
{
public function init(): void
{
// Registra la nueva ruta en la API y vincúlala al controlador personalizado
Kernel::addRoute('/api/3/mi-endpoint', 'ApiControllerPruebas', -1);
ApiRoot::addCustomResource('mi-endpoint');
}
}
2. Crear tu ApiController Personalizado
Debes crear el archivo ApiControllerPruebas.php en la carpeta Controller de tu plugin. Este controlador gestionará la lógica de tu nuevo endpoint:
<?php
namespace FacturaScripts\Plugins\MyNewPlugin\Controller;
use FacturaScripts\Core\Template\ApiController;
class ApiControllerPruebas extends ApiController
{
protected function runResource(): void
{
// Lógica del endpoint
$this->response->setContent(json_encode(['hola' => 'mundo']));
}
}
Puedes personalizar la lógica modificando el contenido dentro de runResource() según tus necesidades.
3. Ejemplo de Consumo del Endpoint
Una vez implementado el endpoint, puedes hacer solicitudes a:
https://tusitio.com/api/3/mi-endpoint
La respuesta será:
{
"hola": "mundo"
}