私はいくつかのアプリを提供するためのAPIを作成しています。この例でルールNginXを書き換える方法は?
したがって、アプリケーションはデータベースから情報を得るためにこれらの可能なURLを呼び出すことができます。 PHPで
mysite.com/api/v1/get/menus/list_tblname1.json.php
mysite.com/api/v1/get/menus/list_tblname1.json.php?type=arr
mysite.com/api/v1/get/menus/list_tblname2.json.php
mysite.com/api/v1/get/menus/list_tblname2.json.php?type=arr
私はすでにURLからtblname
をつかみ、すべてのテーブルの内容を私にお返しコードを持っています。それは良い(それは最終版ではありません)動作します。 しかし、私は自分が、URLが指す各ページの同じコードをコピーして貼り付けることがわかりました。コードは次のとおりです。
<?php
header('Content-Type:application/json');
include_once '../../../../class/db.php';
$verb=$_SERVER['REQUEST_METHOD'];
$filePath=$_SERVER['SCRIPT_NAME'];
$split1 = explode("/", $filePath);
preg_match("/(?<=_)[^.]+/", $split1[5], $matches);
$tableName = $matches[0];
if ($verb=="GET") {
header("HTTP/1.1 200 ok");
if(isset($_GET['type']) && $_GET['type']=="arr"){
echo db::get_list($tableName,'arr');//Reply ARRAY
}
else{
echo db::get_list($tableName);//Reply JSON
}
}
else{
die("Nothing for you at this page!");
}
つまり、これらのページには同じコードがあります。
list_tblname1.json.php
list_tblname2.json.php
私はこの状況を解決する方法がわからないですが、私は、これは 書き換えルールのためのケースだと思います。
だから、私は可能な解決策は、例えば returncontent.php
を呼び出し、certanllyページが要求されたときに同じページを指すし、ページにパラメータ$tableName
を渡す必要があるサーバーでルールを作成することができます1ページを作成することだと思います。私は正規表現を私のサーバに渡し、$ _GET [](私が思う)の$tableName
をreturncontent.php
の中に入れなければならないと思う。
私はそれについては分かりません。
NginXを使用しています。
このシナリオではどのように実装するのですか?
これ以外にも、ORMを考慮する必要があります。 propelorm.org – rmharrison
あなたのアイデアは素敵で清潔でした。私に大量のコードを保存してください!私が 'mysite.com/api/v1/get/menus/returncontent.php?tbl = tblname.type'したのは、 – zwitterion
です。それは '?tbl = tblname.json'または'?tbl = tblname.arr'です。このプロジェクトの – zwitterion