ブロックチェーン・AI・システム開発の株式会社INDETAIL

PHPでWeb APIを作成

2015.08.10
INDETAIL

こんにちは、農道JSです。

現在良く使われているWeb APIとそれの簡単な作り方について話をしたいと思います。

APIは?
APIはApplication Programming Interface(アプリケーションプログラミングインタフェース)の省略です。
プログラムを作る時に、(殆どのケースだと)全てをゼロから作るではなく、既存のソフトウェアに依存して、それを定義された形式のリクエストによって利用します。その(リクエストとレスポンスの)「定義された形式」はAPIです。

Web APIは?
Webの文脈だと、APIは(殆ど)HTTPリクエスト・レスポンスの構成になります。
データの形式について、XMLとJSONは良く使われています。

Web APIを作りましょう
簡単な物を作りましょう。

APIの定義:
「年/月/日」フォーマット(例:「2013/01/05」)で「date」というQueryStringパラメーターに対象の日を入れて、GETのHTTPで適切なURLに投げると、(エンコードされた)JSON形式で「target_date」という項目で対象の日・後「day_in_japanese」という項目で対象の日の曜日をレスポンスとしてもらえます。

定義だけだと面白くないので、実装もやりましょう。

PHPでの実装
下記のようなPHPファイルを作ります:

簡単に言うと、
日本語の曜日の最初文字の配列を定義します。
Query Stringから「date」を取り出して、Unixタイムスタンプに変換します。
Unixタイムスタンプから曜日の番号(日曜日 = 0・土曜日 = 6)を取って、それを使って先程定義した日本語の曜日の配列から適切な文字を取って、「曜日」と結合します。
データを配列に入れて、エンコードして、レスポンスとして返します。

それで先程定義したAPIを実装しました。

どうやって使う?
簡単に動作確認したいなら、Linuxのコマンドラインから「2015/08/10」の日本語の曜日を取りたいとすると、

(「/」はURLエンコードで「%2F」になります)

Webアプリの中に使いたいなら、JQueryのAjaxメソッドとかによって使う事ができます。

最後に
日本語で曜日を取るのWeb APIは正直大した意味ない(ローカルで解決すれば効率良さそう)ですし、
HTTPヘッダーの詳細等もちゃんと定義するほうが良いですが、
上記は簡単なWeb APIの例にはなると思います。

関連タグ:

「いいね」ボタンを押すと、最新情報をすぐに確認できます。