hefestoapicontainer

Message

Puedes acceder al message a través del estado y a través de alias. El message te permite leer cualquier cosa que envíe el cliente en la petición (cabeceras, body, queryParams, etc). Y te permite escribir sobre la respuesta que envíes al cliente (cabeceras, body, status, etc).

Estos son los métodos que puedes usar para leer/escribir el message desde dentro de una directiva:

Algunos de los métodos descritos anteriormente tienen sentido por cómo funcionan las conexiones a otros microservicios y APIs. Por ejemplo, pongamos que expones un endpoint llamado PUT /user, que en realidad se conecta a un microservicio cuya url es POST /users. En ese caso usarás una directiva como esta:

    <?php /*dlv-code-engine***/
	/*Directiva: ModifyRequest*/
	$state->message()->setVerb('POST');
	$state->message()->setPath('/users');

Que será invocada así:

key: poems
endpoints:
    put /user:
        ModifyRequest:
            directive: ModifyRequest
        Http: 
            directive: Http
            host: https://microservice.com

Es decir, modificarás el verb y el path, para que al hacer la conexión, con la directiva Http, al microservicio, no se haga con el path y el verb, que estás exponiendo (PUT y /user). Sino la requerida por el microservicio.

Recuerda que también puedes usar alias para leer el message.

También puedes usar el message para acceder a la request que envía el cliente y/o modificar la response que envías al cliente como en este caso:

key: poems
endpoints:
	get /ping:
        MyCustomDirective:
            directive: MyDirective
    <?php /*dlv-code-engine***/
	/*Directiva: MyDirective*/
	$output = 'Hola hombre desconocido';

	$name = $state->message()->getQueryParam('myname');
	if ($name === 'isidoro') {
		$output = 'Hola creador';
	}

	$state->message()->setStatus(201);
	$state->message()->setHeader('Content-Type','application/json');
	$state->message()->setBodyAsArray(
		'text' => $output
	);

En este caso se accede a un queryParam llamado myname, en caso de que sea isidoro se devolverá un JSON al cliente con el texto 'Hola creador', en caso contrario se enviará 'Hola hombre desconocido'. Siempre se enviará un 201.

Ir a la home