Ejemplo Rest

De KumbiaPHP Framework Wiki
{{#if:Import.png |}} {{#if: |}}


Por defecto cada acción se llama como el método usado por el cliente (GET, POST, PUT, DELETE, OPTIONS, HEADERS, PURGE...) ademas se puede añadir mas acciones colocando delante el nombre del método seguido del nombre de la acción put_cancel, post_reset, etc.

Ejemplo de controlador que hereda de RestController

Mediante este ejemplo se muestra la forma de usar REST con KumbiaPHP.

<?php
//carga el modelo
Load::model('books');
class LibrosController extends RestController{
    /**
     * Retorna informacion del libro con $id 
     * metodo get libros/:id
     */
    public function get($id){
        $ids = (int)$id // Es siempre buena practica sanear las entradas, aun cuando AR haga su trabajo.
        $book = new Books();
        $this->data = $book->find($ids);
    }
    
    /**
     * Lista los libros
     * metodo get libros/
     */
    public function getAll(){
	$book = new Books();
        $this->data = $book->find();
    }
	
    /**
     * Crea un nuevo libro
     * metodo post libros/
     */
    public function post(){
	$book = new Books();
	if($book->save($this->param())){
		$this->setCode(201);
		$this->data = $book;
	}else{
		$this->data = $this->error("error inesperado", 400);
	}
    }
	
    /**
     * Modifica un libro por $id
     * metodo put libros/:id
     */
    public function put($id){
	$book = new Books();
	$book = $book->find((int)$id);
	if($book->save($this->param())){
		$this->setCode(202);
		$this->data = $book;
	}else{
		$this->data = $this->error("error inesperado", 400);
	}
    }
	
    /**
     * Elimina un libro por $id
     * metodo delete libros/:id
     */
    public function delete($id){
	$book = new Books();
	if($book->delete((int)$id)){
		$this->setCode(200);
		$this->data = array();
	}else{
		$this->data = $this->error("error inesperado", 400);
	}	
    }
}

Recomendado su uso en