質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2484閲覧

phpで作成するAPIのURLの設計と解決について

Praline

総合スコア46

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/04/23 11:26

###前提・実現したいこと
phpでアクセスするアドレスによって、処理を変更するAPIを作成したい。

###設計
ex1)http://api.hoge/api/v1/search/entry=1&entry2=1
ex2)http://api.hoge/api/v1/search?entry=1&entry2=1

他のサイトを見た時に、アクセスしたURLを"/"で分割するという記述があったのですが、今回設計するAPIはエントリの数が十数個に及ぶため、できればentry=*の形でつなげたいと考えております。

また、複数のAPIがあるため、searchと言ったキーワードで処理を切り分けたいです。

###構成
www
-└api

  • └v1
  • └index.php
  • └func
  • └search.php
  • └get.php

###疑問点
・まず、フォルダ構成が上記で問題ないか
・ex1)でアクセスした場合、index.phpにいかず、不明なアドレスとして処理されないか
・ex2)にアクセスした場合、"search"というキーワードを、どのようにアドレスから判別するのか

上記2点について、お手数でなければ具体的にphpでどのような処理を書いていくのか、ご教授いただけると幸いです。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

URLとクラスメソッドを対応付けるならルーティング処理が必要です。

1.ご理解されているような気もしますが、どんなURLでアクセスされても必ず通ってほしいコード(通常はindex.php)を用意します。

2.mod_rewriteなどでURLを書き換えてindex.phpが呼び出されるようにします。

3.index.phpからURLに対応するクラスメソッドを呼び出します。また全部インクルードしておくのは無駄なのでよくあるのはディレクトリ構成とファイル名、クラス名にルールを決めて対応付けて必要なファイルだけ読み込みます。

ルーティングはどんなフレームワークにもついてるので適当なフレームワークを使うのが楽だと思います。

投稿2017/04/24 06:55

nullbot

総合スコア910

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Praline

2017/04/24 08:08

なるほどありがとうございます。ルーティングという機能があるのですね… 他のサイトで調べさせていただいだのですが、 .htaccessでindex.phpに飛ばして、その内部で処理をするとのことですが、 今回自分が提案している例の場合、 ex1)http://api.hoge/api/v1/search/entry=1&entry2=1 【A案】 .htaccessで"/search/"の部分を"/search/index.php?"と書き換える あとは$_GETの中身を受け取る 【B案】 .htaccessでindex.phpに飛ばして、$_SERVER['REQUEST_URI']を"/"で分割、 "search"が含まれていれば、search用のクラスを読み込む。 エントリも同様に"&"と"="で分割し、処理を行う。  ex2)http://api.hoge/api/v1/search?entry=1&entry2=1 【A案】 .htaccessで"/search?"の部分を"/search/index.php?"と書き換える とするあたりが現実的でしょうか .htaccessの勉強が少し足りないので、参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問