Wednesday, January 28, 2026

CodeIgniter: Tutorial restapi by chatgpt

Table name :tmp_harga_jual

    id Primary   int(11) 
    nama             varchar(100) 
    satuan           varchar(20) 
    harga             decimal(10,2)     
    kode_modal varchar(20)

1. create Model app/Models/TmpHargaJualModel.php

<?php

namespace App\Models;

use CodeIgniter\Model;

class TmpHargaJualModel extends Model
{
    protected $table      = 'tmp_harga_jual';
    protected $primaryKey = 'id';

    protected $allowedFields = [
        'nama',
        'satuan',
        'harga',
        'kode_modal'
    ];

    protected $returnType = 'array';
}

2. create Controller app/Controllers/TmpHargaJual.php

<?php

namespace App\Controllers;

use App\Models\TmpHargaJualModel;
use CodeIgniter\RESTful\ResourceController;

class TmpHargaJual extends ResourceController
{
    protected $modelName = TmpHargaJualModel::class;
    protected $format    = 'json';

    public function index()
    {
        $data = $this->model->findAll();

        return $this->respond([
            'status' => 'success',
            'data'   => $data
        ]);
    }
}

3. Add route app/Config/Routes.php

<?php

use CodeIgniter\Router\RouteCollection;

/**
 * @var RouteCollection $routes
 */
$routes->get('/', 'Home::index');

$routes->get('hello', 'Hello::index');

$routes->get('harga-jual', 'TmpHargaJual::index');

Add search

modify app/Controllers/TmpHargaJual.php

<?php

namespace App\Controllers;

use App\Models\TmpHargaJualModel;
use CodeIgniter\RESTful\ResourceController;

class TmpHargaJual extends ResourceController
{
    protected $modelName = TmpHargaJualModel::class;
    protected $format    = 'json';

    public function index()
    {
        $nama = $this->request->getGet('nama');

        if ($nama) {
            $data = $this->model
                ->like('nama', $nama)
                ->findAll();
        } else {
            $data = $this->model->findAll();
        }

        return $this->respond([
            'status' => 'success',
            'count'  => count($data),
            'data'   => $data
        ]);
    }
}

Test using curl 

$ curl "http://localhost/myapp/harga-jual?nama=kopi

 

Common functions:

| HTTP   | URL             | Meaning  |
| ------ | --------------- | -------- |
| GET    | `/harga-jual`   | List all |
| GET    | `/harga-jual/1` | Get one  |
| POST   | `/harga-jual`   | Create   |
| PUT    | `/harga-jual/1` | Update   |
| DELETE | `/harga-jual/1` | Delete   |