Si es nuevo en Drupal 9 y se pregunta cómo crear una API REST simple, este es el lugar adecuado para obtener información al respecto. Puede crear una API REST de varias maneras, pero la que le mostraré en esta publicación es el método más simple.

Primero, necesitamos crear un módulo. Así que vamos a empezar. Cree un nombre de carpeta como " custom_rest_api_controller " y cree un archivo de información en él, como se muestra a continuación:


Si ve el archivo anterior, he creado dos rutas y también he configurado los métodos POST y GET . Básicamente, el método POST es para almacenar datos y el método GET es para obtener los datos almacenados. Además, puede notar propiedades como " opciones " y " _auth ", estas son útiles para habilitar la autenticación para nuestras rutas.

Ahora que tenemos listo nuestro archivo Routing.yml, vamos a crear una clase de controlador y esto debería ir debajo de la ruta " src/Controller/MyRestController.php ". Entonces, necesitamos crear dos carpetas " src " y " Controller " y luego crear un archivo debajo de eso.

MiRestController.php


Hay dos métodos en nuestro Controlador, getData() para obtener los datos almacenados y postData() para almacenar los datos en una variable de configuración de Drupal. Simplemente revise las líneas de código anteriores y los comentarios para comprender la lógica.

Ahora que tenemos todo listo, habilitemos este módulo, también dado que estamos usando " _auth: ['basic_auth'] " como autenticación para nuestra API REST, también debemos habilitar el módulo " Autenticación básica HTTP ". Vea la captura de pantalla a continuación:


Todo está configurado, probemos las API ahora. Podemos usar la extensión POSTMAN Chrome para probar nuestras API REST.

Tengo esta instancia de Drupal 9 en mi "Localhost", por lo que la URL es algo así para míhttps://localhost/drupal9/my_rest_api/post_data?_format=json

No olvide agregar el parámetro de consulta " _format " después de la URL; de lo contrario, es posible que veamos un comportamiento inesperado. Ya que estamos usando " Autenticación básica ", agréguelos al cartero en la pestaña "Autorización" . El nombre de usuario y la contraseña no son más que el nombre de usuario y la contraseña de Drupal. Asegúrese de haber seleccionado el método " POST " en la herramienta ya que nuestro "método" API es POST.

Ahora vaya a la pestaña " Cuerpo ", coloque este objeto JSON y presione el botón " Enviar ".

{< fuente >< / fuente >
nombre: "agurchand" fuente >< / fuente >

}

La siguiente captura de pantalla muestra lo que debería estar allí en la pestaña " Cuerpo ", y también muestra cuál será la respuesta una vez que envíe la solicitud POST haciendo clic en el botón " Enviar ".

Ahora el valor de " nombre " se almacena en nuestra variable de configuración personalizada de Drupal " custom_rest_api_controller.settings ".

Busquemos los datos usando el método GET y la API " get_data " . Esta a continuación es nuestra URL " get_data ", 

https://localhost/drupal9/my_rest_api/get_data?_format=json

No olvide agregar el nombre de usuario y la contraseña en la pestaña " Autenticación " y seleccione el método como " OBTENER ". Aquí está la pantalla que muestra la respuesta de nuestra API get_data

Espero que esto te haya ayudado a comprender cómo crear una API REST usando un controlador en Drupal 9.

Puede descargar este módulo personalizado desde mi repositorio. Simplemente instálelo como un módulo personalizado normal y pruébelo para comprenderlo a fondo.