CodeIgniter3をREST APIに対応させる

仕事でRest APIを作る必要があったため、CodeIgniterをRest APIに対応させました。
今回はRest APIに対応させる方法を紹介します。

※今回は以前紹介した方法でインストールしていることを前提にしています。

CodeIgniter3をComposerでインストールする方法

2017年7月28日

インストール・設定方法

環境

  • PHP 5.6.30
  • CodeIgniter 3.1.5
  • CentOS 6.8

Composerでchriskacerguis/codeigniter-restserverをインストール

コマンドラインでcodeigniterをインストールしているディレクトリ(composer.jsonがあるディレクトリ)に移動します。
Packagistでchriskacerguis/codeigniter-restserverを探してcomposerでインストールしてください。

$ composer require chriskacerguis/codeigniter-restserver

しばらく待っているとインストールが完了します。

必要なファイルを移動

以下のファイルを、コピーしてください。
/vendor/chriskacerguis/codeigniter-restserver/application/libraries/Format.php

/application/libraries/Format.php

/vendor/chriskacerguis/codeigniter-restserver/application/libraries/REST_Controller.php

/application/libraries/REST_Controller.php

これでインストールと設定が完了です。

コーディング

では実際にコーディングしてみます。
/application/controllersApi.phpを作成して、以下のコードを記述してください。

// 設置したREST_Controller をextendsする
class Api extends \Restserver\Libraries\REST_Controller {
	
	/**
	 * /api/sampleにGETで
	 * リクエストしたときに実行される
	 */
	public function sample_get()
	{
		$this->response([
			'request' => 'get',
		]);
	}
	
	
	/**
	 * /api/sampleにPOSTで
	 * リクエストしたときに実行される
	 */
	public function sample_post()
	{
		$this->response([
			'request' => 'post',
		]);
	}
	
	/**
	 * /api/sampleにPUTで
	 * リクエストしたときに実行される
	 */
	public function sample_put()
	{
		$this->response([
			'request' => 'put',
		]);
	}
	
	/**
	 * /api/sampleにDELETEで
	 * リクエストしたときに実行される
	 */
	public function sample_delete()
	{
		$this->response([
			'request' => 'delete',
		]);
	}
}

今回route.phpをいじってルーティングを指定する必要はありません。
実際にどういう結果になるか以下のコマンドを実行して確認してください。

# POST送信 sample_post()が実行される
$ curl アドレス/api/sample -X POST

# GET送信 sample_get()が実行される
$ curl アドレス/api/sample -X GET

# PUT送信 sample_put()が実行される
$ curl アドレス/api/sample -X PUT

# DELETE送信 sample_delete()が実行される
$ curl アドレス/api/sample -X DELETE

結果がJson形式で出力されます。

今回はインストールと設定について簡単に紹介しました。
今度はもっと掘り下げた内容を説明します。