APIみんな大好きCodeigniterでREST風APIの実装#API#Chrome#Codeigniter#Express#framework#JSON#PHP#REST#Restlet#RFC秋の日は釣瓶落としとはよく言ったもので、夕暮れが早くなり朝晩もすっかり涼しくなりまして確実に季節が変わろうとしています。より被災された皆様方には心よりお見舞い申し上げますとともに、犠牲になられた方々とご遺族の皆様に深くお悔やみを申し上げます。電力については22時間に渡り停電しており、カーショップで貰ったLEDランタンで闇を照らし、社長から誕生日プレゼントで頂いたモバイルバッテリーをスマホに繋ぎネットやワンセグ放送を見聞きして過ごしていました。地震発生から半日以上が経過し、辺り一帯が再び闇に包まれる中、ふっと夜空を見上げると無数のが広がっていました。札幌市内でこんな星空は見たことなく、満天の星空を見てると色々と考えさせられました。はじめに物思いにふけるのはコレくらいにして、開発室では以前からある指針を掲げています。担当者の機能分担と作業範囲を明確にするため、フロントエンドとバックエンドは極力独立するように心がけましょう。フロントエンドは最新動向と将来性を鑑み柔軟に対応しましょう。バックエンドはAPI化して機能の共通化及び部品化を推進し、工数の削減を図りましょう。はい、ごもっともです。部品化したAPIをLEGO®のように組み合わせることにより、新たなソリューションを見出すことが出来ればメシうまですね。DRIVES!このような潮流のなか、各種ツールの機能追加やサービスの拡充に伴い、いくつかのコア機能のAPI化を検討することにしました。あればAPIサーバのフレームワークとしてLaravel推なのでしょうが、現在サービス運用中のフレームワークはCodeigniterを採用しています。APIがヒットして記載内容を参考にしながら必要なライブラリーをインストールして自環境に適用してみました。found動きません...。#930まぁ~参考サイトが2年前のもので最新バージョンとの動作差分ということにしておきます。あと、レスポンスのminetypeはJSONなのですが試験等でレスポンス結果が目視で確認出来れば楽なのでUnicodeのエスケープを抑止しておきます。Unicodeエスケープを抑止とりあえず確認用のControlerを実装して動作確認してみます。{"request":"delete","id":"123"}POSTだけidが無いのは一般的にデータ登録後は新規に自動採番されるためです。Createdを送っています。興味のある方はこちらをご覧ください。確認ツールターミナルでcurlコマンドを叩くのもいいのですが、RESTサービスの確認にはやはり使い勝手のいいツールがあれば何かと便利です。わたしはChromeブラウザの拡張機能として提供されているこちらを利用させて頂きました。TestingリクエストヘッダやBasic認証の設定も簡単でJSON形式のパラメータもリクエスト送出が可能で、ブラウザで操作できるところが気に入ってます。ユーザ登録をするだけで無料で利用できますので気になる方は一度お試しあれ。本家サイトおわりに本格的なAPI実装の前にCodeigniterにおいてミドルウェア(各メソッドの処理をする前に行う共通的な前処理(認証処理等)例えばLaravelやExpressのミドルウェア等)のような機能についても調査しようと思います。Ltd.プライバシーポリシ。