製品用の小さな API を設計しようとしています。MySQL データベースがあり、PHP で単純な GET/POST コマンドを作成するための小さなフレームワークを使用しています。
私が抱えている問題は、テーブルの列名を明らかにせずにデータベースからデータを公開する方法がわからないことです。たとえば、誰かがエンドポイントに GET リクエストを送信したとき、私は次のようにして JSON データを返します。
$rs = mysql_query($sql);
if($rs) $rsc = mysql_num_rows($rs);
while($row = mysql_fetch_assoc($rs)) {
$data[] = $row;
}
header("HTTP/1.1 202 OK");
header("Access-Control-Allow-Origin: *");
header("Content-type: application/json", true);
echo json_encode($data);
exit;
(はい、mysql_* が悪い悪い悪いことを知っています。=) ほぼ 15 年前のコード ベース。変換する楽しい時間になるでしょう...)
この方法は素晴らしくシンプルですが、データベースからの列名が単純なサイトに表示されます (決して公開しないように常に努力してきました)。返されるものの例は次のとおりです。
[{"NewsID":"559110","Day":"10\/17\/13","UnixDT":"1382031900","Subject":"Testing formatting"},{"NewsID":"535214","Day":"09\/10\/13","UnixDT":"1378836900","Subject":"Check Template - use tempate from tempate mgr"},
この考え方は、一般向けの API に慣れる必要があるだけなのでしょうか。それとも、列名をキー名として使用しないデータを返すためのより良い方法はありますか。これまでにセミパブリック向けの API を作成したことはありません。そのため、ポイントやフィードバックは大歓迎です。