Añadir un Endpoint a la API
Con los últimos cambios en la versión 2023.1, añadir endpoints a la API se ha vuelto más sencillo gracias al nuevo sistema de enrutamiento. La única acción necesaria es crear un controlador que herede de ApiController y registrar la nueva ruta en el archivo Init.php del plugin.
Añadir la ruta a la API
Desde el archivo Init.php de nuestro plugin, en su función init()
, podemos añadir la nueva ruta a la API y vincularla con el nuevo controlador.
<?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
{
Kernel::addRoute('/api/3/mi-endpoint', 'ApiControllerPruebas', -1);
ApiRoot::addCustomResource('mi-endpoint');
}
}
El ApiController
Para nuestro endpoint de API personalizado, necesitaremos un controlador, que es el que hemos vinculado en la ruta. Para este caso, crearemos el archivo ApiControllerPruebas.php
en la carpeta Controller del plugin.
<?php
namespace FacturaScripts\Plugins\MyNewPlugin\Controller;
use FacturaScripts\Core\Template\ApiController;
class ApiControllerPruebas extends ApiController
{
protected function runResource(): void
{
// Tu código aquí
$this->response->setContent(json_encode(['hola' => 'mundo']));
}
}
Ejemplo de Uso
Una vez que hayas creado el endpoint, podrás realizar peticiones a https://tusitio.com/api/3/mi-endpoint
y recibirás la siguiente respuesta:
{
"hola": "mundo"
}