2011-07-07 16 views
9

多くのクライアントから、自分のウェブサイトに接続してデータを取得したり、ログインできるようにするモバイルアプリケーションを作成するように求められています。そのほとんどにはPHPベースのサイトがありますが、それらとのインターフェイスをとるAPIを作る手掛かり。彼らはなぜ私は自分のSQLデータベースに直接接続できないのか尋ねます。私はそれがモバイルアプリからするのは良いことだとは思わない。私は彼らにAPIのいくつかの並べ替えをしたいと思います。ウェブサイトAPIの作成方法

PHPベースのサイトに関する限り、この目的のためにAPIを実装する際の最良の選択肢は何ですか?

+0

は6つのbajillion電話は3つの無数のモバイルOSバリアントにそこにあります、そしてすべての電話/ OSのバリアントのためのデータベースドライバが存在しないことを伝え。 –

+1

また、データベースの資格情報を世界中に渡すことは、おそらく悪い考えです。これは、アプリがSQLクエリを直接実行できるようにしている場合に実行していることです。 (スーパークラスではなく、SQLで記述することができます。) – ceejayoz

+0

@Marc '$ .getJSON(" http://example.com/db "、{SELECT * FROM tags"}、function(res){});保守性に優れたコードです。 – Novikov

答えて

2

あなたはRESTfulウェブサービスを調べたいと思っています。このhereのwikiを見てください。お客様のクライアントは、基本的にPHPアプリケーションを構築し、REST準拠のデータ型を使用してウェブサイトの基礎となるデータを提供する必要があります。 JSON、XML、SOAPなどPHPデータ構造をこれらの形式に素早く変換するための多数の組み込みPHP関数があります。これにより、HTTPリクエストで独自の方法でデータを表示できるモバイルアプリを構築できます。次のようにJSONパワードサービスが可能性のために

例:

$action = $_GET['action']; 
switch($action) { 
    case 'get-newest-products': 
    echo json_encode(getNewestProducts()); 
    break; 
    case 'get-best-products': 
    echo json_encode(getBestProducts()); 
    break; 
    . 
    . 
    . 
    default: 
    echo json_encode(array()); 
    break; 
} 

function getNewestProducts($limit = 10) { 
    $rs = mysql_query("SELECT * FROM products ORDER BY created DESC LIMIT $limit"); 

    $products = array(); 
    if (mysql_num_rows($rs) > 0) { 
    while ($obj = mysql_fetch_object($rs)) { 
     $products[] $obj; 
    } 
    } 
    return $products; 
} 

function getBestProducts($limit = 10) { 
    $rs = mysql_query("SELECT * FROM products ORDER BY likes DESC LIMIT $limit"); 

    $products = array(); 
    if (mysql_num_rows($rs) > 0) { 
    while ($obj = mysql_fetch_object($rs)) { 
     $products[] $obj; 
    } 
    } 
    return $products; 
} 

次のように(上のmod_rewriteを)http://myapi.mywebsite.com/get-newest-products

+0

。ありがとう。 – gonzobrains

1

RESTは、検索用のリソースを構造化する非常に良い方法です。 REST APIを作成することは、データとAPIの間の抽象概念の比較的薄い層を維持しながら、データに対して実行できる一連の操作を定義する非常に便利な方法です。それはまったく簡単なことではありませんが、用途やセキュリティ上の懸念を考慮する必要があり、非常に拡張性があり、将来的には問題がありません。

4

だけで、単一のコントローラとのAPIサブドメイン、および各特定のタスクのための方法にする - JSONのデータ出力を、そしてあなたが設定されている:

http://api.theirsite.com/get-users 
http://api.theirsite.com/get-news 

等...

+0

正しいですが、PHPクエリをデータベースにしてJSONドキュメントとしてまとめておくのはとても簡単です。情報のある – Soren

-2

代わりのアプリを、彼らのモバイルサイトを使用することをお勧めしAPIを照会できブラウザを開いてモバイルサイトにリダイレクトするだけのラッパーがあります。

+0

umm、no。行かないでください。 $ 200を集めないでください。 – gonzobrains

+0

何ですか?私はあなたを理解できませんでした.. –

0

まあ、私はDrupal、Joomla、またはWordpressのいずれかで多くのWebサイトを見てきました。そのような場合は、APIモジュールを使用してAndroidアプリを有効にしてビルドすることができます。

0

この問題は、私たちが独自のフォーマットとターゲットサイトの間の層としてXQUERYを使用して、データベースに主に格納されている単純なJavaサーブレットを導入していることがよくありました。これは、そのデータをRESTサービスを介してJSONに変換します。それは、Joomla、Wordpressなどのようなあらゆる新しいシステムで、私たちを柔軟かつ迅速にすることができます...それは私たちのために長年働いています。新しいシステムを最終的には、通常は普段通りに適応させる。 Stylus-Enterpriseを使用して、UIでXqueryファイルをデザインすることができます。あなたがPHPに固執したいのであれば、Luracast Restlerは本当に良い仕事をします。

0

REST APiを作成するには、Php Slim Micro Frameworkを使用します。非常に簡単に設定してコードを書くことができます。

おかげ

+0

詳細を提供してください。 – gonzobrains

関連する問題