Clase RESTServer

De ZanPHP
zan/classes/class.restserver.php

Esta clase permite la creación de servicios RESTFul.

Contenido

Cargando esta clase

Esta clase es cargada usando el siguiente código:

 $this->RESTServer = $this->core("RESTServer");

Atributos

@var private $data = array()

application($application = NULL)

Inicializa el atributo $this->application.

authenticate($application)

Se encarga de autenticar la petición HTTP de cada aplicación.

data()

Obtiene la información y la retorna en forma de array.

isREST($segment = 0, $method = "get")

Este método es uno de los más importantes, es el que verifica si la petición recibida es un servicio RESTFul además de validar el método que se específica y autentifica la aplicación por medio del método authenticate().

 public function contact($contactID = 0) { 
     $data = $this->Agenda_Model->contact($contactID);	
 
     if($data) {
         if($this->RESTServer->isREST(4)) {
	     $this->RESTServer->process($data, 5);
	 } else {
	     $vars["contacts"] = $data;
	     $vars["view"]     = $this->view("contacts", TRUE);
 
	     $this->template("content", $vars);	
	     $this->render();
	 }
     } else {
         $this->template("error404");	
	 $this->render();			
     }
 }


 public function contacts() {
     $data = $this->Agenda_Model->contacts();
 
     if($this->RESTServer->isREST(3)) {
         $this->RESTServer->process($data);	
     } else {
	 $vars["contacts"] = $data;
	 $vars["view"]	  = $this->view("contacts", TRUE);
 
	 $this->template("content", $vars);		
	 $this->render();
     }
 }


 public function edit($contactID = 0) {
     if($this->RESTServer->isREST(TRUE, "PUT")) {
         $data = $this->RESTServer->data();
 
	 $response = $this->Agenda_Model->edit($contactID, $data);
 
	 if($response) {
	     $message = $this->RESTServer->message("The contact has been edited correctly");
	 } else {
	     $message = $this->RESTServer->message("Update Fail", TRUE);
	 }
 
	 $this->RESTServer->response($message, FALSE, "PUT");
     }
 }


 public function delete($contactID = 0) {
     if($this->RESTServer->isREST(TRUE, "DELETE")) {
         $response = $this->Agenda_Model->delete($contactID);
 
	 if($response) {
	     $message = $this->RESTServer->message("The contact has been deleted correctly");
	 } else {
	     $message = $this->RESTServer->message("Delete Fail", TRUE);
	 }
 
	 $this->RESTServer->response($message, FALSE, "DELETE");
     }
 }

message($message, $error = FALSE)

Retorna un mensaje en forma de array.

method()

Obtiene el método por medio del cual se esta realizando la petición (POST, GET, PUT o DELETE).

process($data, $segment = 4)

Manda a llamar a authenticate() y a response() para procesar la información.

response($data, $segment = 4, $method = "GET")

Es el encargado de enviar respuesta al cliente, si es una petición normal retornará los valores en formato JSON, si se específica que se quiere retornar la información en XML, entonces la retornará en dicho formato.

Herramientas personales