当前位置: 首页 > 知识库问答 >
问题:

如何在RESTAPI codeigniter中运行新函数

笪昌翰
2023-03-14

我正在使用codeigniter框架创建一个RESTAPI。我从以下链接下载了代码:https://github.com/halimus/codeigniter-rest-api

现在在邮递员中,如果我把下面的网址与GET或POST方法,然后api正在运行:http://localhost/codeigniter-rest-api-master/api/users。但是如果我添加一个新功能"测试",并点击下面的网址,然后它显示错误"404页面未找到"http://localhost/codeigniter-rest-api-master/api/testing"

这是我的代码"应用程序/控制器/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个答案

葛海阳
2023-03-14

您需要将函数重命名为{资源}_{HTTP_verb}。

就你而言testing_get。

其中testing是资源,get是HTTP动词。

使用GET方法中的URI:http://localhost/codeigniter-rest-api-master/api/users/testing/访问API时,将调用testing_get。

您可以在此处详细阅读:https://code.tutsplus.com/tutorials/working-with-restful-services-in-codeigniter--net-8814

 类似资料:
  • 上述方法工作良好,但有一个警告 我想知道,有没有一种简单明了的方法可以直接调用bash函数,因为它是正常的二进制函数,而不需要包装?也许像是

  • 我是JavaScript和React的新手,我正试图远离教程,所以为了自己的学习利益,我开始制作一个简单的应用程序,但遇到了功能异步运行的障碍。 在中,有一个,其回调中包含以下内容: 如何使上述两个函数同步运行使用在中设置的,但下面的显示在完成之前启动。 我已经阅读了一些参考资料,其中提到使用promise,但我不知道如何应用它。。。我还想知道是否可以通过/实现。 完整(ish)代码:(为了简单起

  • IDE版本和系统是2017.1.4 Build#ic-171.4694.23,Build on 6月6日2017 jre:1.8.0_112-release-736-b21 x86_64 jvm:OpenJDK 64位服务器VM by JetBrains S.R.O Mac OS X 10.12.4 有一个。kt文件,其中有一个main函数。当我右键单击它时,我可以选择运行,但我得到一个错误表单J

  • 我有2个控制器为2个fxml文件。在一个控制器中,我有一个函数,它打开一个文件选择器,并给出一个我称之为Model的类的路径。然后在另一个控制器上有一个函数在单击Draw按钮并运行程序后获取该路径。我有另一个按钮来重置程序。它将结果设置为null,但当打开另一个文件运行时,程序崩溃,因为路径为null。如何重置程序并使其使用从打开文件选择器中选择的新路径?

  • 我是playframework应用程序开发人员。我使用jpa中的createNativeQuery方法通过select查询从表中提取值。我需要使用更新查询。我要做的是什么,以及该方法的返回类型是什么。请任何人帮助我。提前谢谢。如果我这样使用,它会显示错误。。 Query query=JPA.em()。createNativeQuery(" update truck set flag = ' YES

  • 我不熟悉JTable。 我想在button press事件中在运行时更新jtable数据。 这是我的密码。 但按下“更新”按钮后不会更新。 有人能解决我的问题吗? 提前谢谢。。