Creating RESTful API by using pure CodeIgniter?

18,359

If your are using version 3, you can do this

create a controller users.php

class Users extends CI_Controller {

    /**
    * @route http://proyect/users
    * @verb GET
    */
    public function get()
    {
        echo "Get";
    }

    /**
    * @route http://proyect/users
    * @verb POST
    */
    public function store()
    {
        echo "Add";
    }

    /**
    * @route http://proyect/users
    * @verb PUT
    */
    public function update()
    {
        echo "Update";
    }

    /**
    * @route http://proyect/users
    * @verb DELETE
    */
    public function delete()
    {
        echo "Delete";
    }

}

edit (add) in your application/config/route.php

$route["users"]["get"]    = "users/get";
$route["users"]["post"]   = "users/store";
$route["users"]["update"] = "users/update";
$route["users"]["delete"] = "users/delete";

$route['products/([a-zA-Z]+)/edit/(\d+)'] = function ($product_type, $id)
{
        return 'catalog/product_edit/' . strtolower($product_type) . '/' . $id;
};
Share:
18,359
Cyclops
Author by

Cyclops

Code Lover

Updated on June 19, 2022

Comments

  • Cyclops
    Cyclops almost 2 years

    I need to create a RESTful web api using only CodeIgniter. I can not use any third-party plugins or libraries to do this. I have seen that most people are using https://github.com/chriskacerguis/codeigniter-restserver. Please guide me on writing a REST api only using CodeIgniter. Helpful links and steps are highly appreciated.

    Thanks in Advance.

  • Cyclops
    Cyclops about 8 years
    application/config/config.php or application/config/routes.php It should be routes.php
  • elddenmedio
    elddenmedio about 8 years
    sorry, is in application/config/routes.php. Can you sendme the error above, please
  • Cyclops
    Cyclops about 8 years
    This is working, but the problem is, even though we have define the HTTP verb here as like get , post and etc, every url work for every request. That mean users/store url is working for all http methods (GET , POST , PUT , ....)