3
votes

I've read the following topics/tutorials:

  1. Codeigniter RESTful API Server
  2. http://code.tutsplus.com/tutorials/working-with-restful-services-in-codeigniter--net-8814
  3. https://github.com/chriskacerguis/codeigniter-restserver

And I still can't figure out why I'm with route problems and XML problems. My webservice controller is in the folder controllers/api/webservice.php

<?php defined('BASEPATH') OR exit('No direct script access allowed');

require APPPATH.'/libraries/RESTful/REST_Controller.php';

class webservice extends REST_Controller{

     function get() {
        $data = array();
        $data['name'] = "TESTNAME";
        $this->response($data); 
     }
}

In the tutorials there is no need to add routes, and in order to receive the XML page error I needed to add the following route or it wouldn't work:

$route['api/webservice/get'] = 'api/webservice/get';

My structure folder of codeIgniter:

 > application
   > config
       rest.php (did not change anything from the GitHub download)
   > controllers
      > api
         webservice.php
         key.php
   > libraries
      > RESTful
         REST_Controller.php (changed line 206 to: $this->load->library('RESTful/format');)
         format.php

From the tutorial, the following link works without routes:

http://localhost/testRestful/index.php/api/example/users

Mine only works with route

http://localhost/myproject/index.php/api/webservice/get

And I receive the following error: enter image description here It does not say anything else. I can't figure out which file is the error talking about.

1
Is that your full controller code? - Craig
@Craig Yes it is. I'm just testing so I've nothing else in my controller. - Linesofcode
I only ask because I am sure we've had this problem before, which was fixed by removed unwanted white space. - Craig
I'm trying to delete empty lines/spaces (in the head of files and bottom) to see if I can find it - Linesofcode
@Craig I've solved the XML issue with this solution github.com/chriskacerguis/codeigniter-restserver/issues/219, but what about the routes, do you have any idea why do I need to set them all? - Linesofcode

1 Answers

1
votes

you cannot write get function if you use REST_Controller. give that function name test_get.

class webservice extends REST_Controller{
 function test_get() {
    $data = array();
    $data['name'] = "TESTNAME";
    $this->response($data); 
 }
}

Now you can access the page with this link

http://localhost/myproject/index.php/api/webservice/test

_get and _post is added end of the function to detect either it is get request or post requerst.