+1 vote
31 tayangan

saya sedang membuat endpoint yang fungsinya untuk mengambil semua data di table User menggunakan PhalconPHP. Untuk percobaan saya masih copy code dari endpoint yang sudah ada sebelumnya, hanya mengubah nama function dan url nya saja (sudah dipastikan endpoint tersebut berjalan lancar). Berikut langkah yg sudah saya lakukan:

controller:

public function indexAll($pageNum = 0)

    {

        if ($this->isAllowed('Pegawai', 'indexAll')) {

            $pageNum = intval($pageNum);

            if ($pageNum > 0) {

                $pageNum = $pageNum - 1;

            }

            $pageLimit = $this->pageLimit;

            $orgScope = $this->getOrganizationScope();

            if (!$orgScope) {

                $this->sendJsonOutput([

                    'error' => 'Token organisasi anda invalid'

                ], ['code' => '401', 'name' => 'Unauthorized']);

            } else {

                $searchCond = array_merge([

                    'limit' => $pageLimit,

                    'offset' => ($pageLimit * $pageNum),

                    'order' => 'kode_unit_kerja, nama asc'

                ]);

                $numOfPegawai = Pegawai::count();

                if ($numOfPegawai > 0) {

                    $pegawaiList = Pegawai::find($searchCond);

                    $result = [];

                    /** @var Pegawai $pegawai */

                    foreach ($pegawaiList as $pegawai) {

                        $result[] = $pegawai->getFullItem();

                    }

                    $pageNumDisplay = $pageNum + 1;

                    $this->sendJsonOutput([

                        'data' => $result,

                        'total' => $numOfPegawai,

                        'page' => $pageNumDisplay,

                        '_links' => $this->halRef('/pegawai/all/' . $pageNumDisplay),

                    ], [

                        'code' => 200,

                        'name' => 'Success'

                    ]);

                } else {

                    $this->sendJsonOutput([

                        'error' => 'Daftar Item Pegawai tidak dapat ditemukan'

                    ], ['code' => '404', 'name' => 'Not Found']);

                }

            }

        } else {

            $this->sendJsonOutput([

                'error' => 'Anda tidak memiliki akses'

            ], ['code' => '401', 'name' => 'Unauthorized']);

        }

    }

Untuk route API:

kemudian get pada bagian aplikasinya, disini menggunakn Yii

response status 404.

Apakah ada langkah yang terlewat atau salah?

dalam Phalcon oleh  Kawan Berbageek (374 poin) | 31 tayangan

2 Jawaban

+1 vote
Jawaban terbaik

404 nya ada dua kemungkinan:

1. Dari response method indexAll (bagian else dari if $numOfPegawai > 0). Untuk ceknya, pastikan table pegawai memang ada isinya.

2. Dari response framework-nya yang menandakan url pegawai/all itu tidak ditemukan. Untuk ceknya, pastikan url pegawai/all itu memang ada. Kalau saya cek pas register route-nya pakai prefix /api/pegawai. Sudah dicoba rest clientnya dengan url api/pegawai/all ?

oleh  Kawan Berbageek (890 poin)
dipilih oleh
solved pak terima kasih, url nya mengarah ke lokasi yg salah ternyata
0 vote

Solved setelah diubah urutan url route API nya (route /all dipindah dibawah route /{nip} karena sebelumnya mengarah ke route /{nip})

oleh  Kawan Berbageek (374 poin)
diedit oleh
Selamat datang di Berbageek! Berbageek adalah tempat berbagi pengetahuan programming, ui/ux design, digital marketing & project management dengan konsep tanya-jawab. Sehingga kita bisa menciptakan solusi lebih cepat dan lebih baik. Berikut adalah rule untuk bertanya:
  1. Jangan duplikasi pertanyaan. Dicari dulu pertanyaan yang serupa.
  2. Buatlah pertanyaan yang generik. Tidak boleh bertanya spesifik menyebutkan nama proyek atau nama perusahaan.