【问题标题】:codeigniter rest api json routingcodeigniter rest api json 路由
【发布时间】:2014-06-17 13:45:04
【问题描述】:

我正在尝试实现 codeigniter rest api 我只得到 xml 输出而不是 json 请大家帮帮我。

路由代码:

$route['api'] = 'omega_api';
$route['api/makes/(:any)'] = 'omega_api/makes/$1';
$route['terms-and-conditions'] = 'home/terms_and_conditions';
$route['contact-us'] = 'home/contact_us';
$route['404_override'] = '';
$route['default_controller'] = 'home';
$route['(:any)'] = 'home/$1';

控制器代码:

    class omega_api extends REST_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('allcars_model');
    }

    public function makes_get($year) {
        $this->response($this->allcars_model->get_makes($year));
    }
}

型号代码:

Class allcars_model extends CI_Model {

    public function __construct() {
        parent::__construct();
        $this->load->database();
    }
public function get_makes($year) {
        return    $this->db->distinct()->select('om_allmakes.makeid,om_allmakes.make_name')->from('om_allmakes')->join('om_allcars', 'om_allmakes.makeid=om_allcars.model_make_id')->where('om_allcars.model_year = ', $year)->get()->result();
    }
}

所以当我转到这个 url http://www.omegalocal.com/api/makes/2014/format/json 时,它总是给我如下的 xml 输出:

<xml>
  <item>
    <makeid>3</makeid>
    <make_name>acura</make_name>
    </item><item><makeid>4</makeid>
    <make_name>Alfa Romeo</make_name>
  </item>
</xml>

我真的不明白问题是什么,但我认为这与路由有关。 提前谢谢。

【问题讨论】:

  • 删除所有路由,然后看看是否有效。或者,更改其余配置文件中的“rest_default_format”。
  • 嗨,克雷格,我试过仍然以 xml 输出,但是在 codeigniter rest api 文档中它只是说 format/json 会给你 json & format/xml 给你 xml 格式,但在我的情况下没有

标签: php json codeigniter rest


【解决方案1】:

尝试使用查询字符串格式:?format=json

$route['api/makes/(:num)/format/(xml|json)'] = 'omega_api/makes/$1/?format=$2';

【讨论】:

  • 嗨,我试过了,它在 xml 中给出了相同的输出
猜你喜欢
  • 2021-11-30
  • 2019-05-03
  • 1970-01-01
  • 2011-08-05
  • 1970-01-01
  • 2017-01-21
  • 2014-10-17
  • 1970-01-01
  • 2022-10-08
相关资源
最近更新 更多