Как запустить новую функцию в остальном api codeigniter - PullRequest
0 голосов
/ 01 декабря 2018

Я создаю API отдыха в использовании codeigniter Framework.Я скачал код по следующей ссылке: https://github.com/halimus/codeigniter-rest-api

Теперь в почтальоне, если я добавлю следующий URL с помощью метода GET или POST, тогда будет запущен api: "http://localhost/codeigniter-rest-api-master/api/users". Но если я добавлю новую функцию"тестирование "и нажмите следующий URL, затем он показывает ошибку" 404 Страница не найдена "" http://localhost/codeigniter-rest-api-master/api/testing"

Вот мой код "Application / controller / api / users.php":

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
require APPPATH.'/libraries/REST_Controller.php';
class Users extends REST_Controller {

    function __construct() {
        parent::__construct();
        $this->load->helper('api');
   }

    public function testing()
    {
        echo "hello world";
    }
    public function users_get(){   
        $this->load->model('Model_users');
        $user_id = $this->get('id');
        if($user_id === NULL){
            $users = $this->Model_users->get_many_by(array('status' =>  array('active', 'inactive')));

            if($users!=""){
                // Set the response and exit
                $this->response($users, REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
            }
            else{
                // Set the response and exit
                $this->response(array('status'=> false, 'message'=> 'The Specified user could not be found'), REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code
            }
        }

        // Find and return a single record for a particular user.
        $user_id = (int) $user_id;
        if ($user_id <= 0){
            // Invalid id, set the response and exit.
            $this->response(NULL, REST_Controller::HTTP_BAD_REQUEST); // BAD_REQUEST (400) being the HTTP response code
        }
        $user = $this->Model_users->get_by(array('user_id' => $user_id, 'status' => array('active', 'inactive')));
        if(isset($user['user_id'])){
            $this->response(array('status'=> 'success', 'message'=> $user));
        }
        else{
           $this->response(array('status'=> 'failure', 'message'=> 'The Specified user could not be found'), REST_Controller::HTTP_NOT_FOUND);
        } 
    } 
}

1 Ответ

0 голосов
/ 01 декабря 2018

Вам нужно будет переименовать вашу функцию в { resource } _ { HTTP_verb }.

В вашем случае testing_get .

Где test - ресурс, а get - глагол HTTP.

При доступе к API с использованием URI: http://localhost/codeigniter-rest-api-master/api/users/testing/ в GET метод.будет вызван test_get.

Подробнее вы можете прочитать здесь: https://code.tutsplus.com/tutorials/working-with-restful-services-in-codeigniter--net-8814

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...