0

MySQL データベースを使用して PHP で記述された Web サイトがあります。iPhone および Android アプリのプログラミング方法を学ぶために、iOS および Android アプリで使用できる Web サービスを作成したいと考えています。

どうすれば続行できますか? MySQL データベースにアクセスする関数は、現在サイトで使用されているため、適切に配置されていますが、これらの関数/クラスを Web サービス、つまりアプリで使用できるようにするための次のステップは何ですか? 私のオプションは何ですか?OAuth? Node.js? 素晴らしいチュートリアルを知っている人はいますか?

ありがとう。

4

2 に答える 2

1

デバイスから Web サイトの API に情報を要求するには、GET または POST を使用することをお勧めします。

得る

http://www.example.com/api/v1/getUsers?username=User*

役職

http://www.example.com/api/v1/getUsers

Post the following information to the above URL:
  username = User*

Web サーバーからの応答については、JSON または XML で情報を出力することをお勧めします。Android と iOS の両方に組み込みの XML 解析ライブラリがあり、JSON を解析するサードパーティ ライブラリもあります。最近では、それらが組み込まれている場合もあります。

JSON と XML の両方をサポートすることをお勧めします。そのため、使用している開発環境の制約に最も適した方法を使用できます。

JSON

{
  'success':True,
  'users': [
    {'id': 1, 'username': 'User1'},
    {'id': 2, 'username': 'User2'},
    {'id': 3, 'username': 'User3'}
  ]
}

XML (属性を利用)

<response>
  <success>1</success>
  <users>
    <user id="1" username="User1" />
    <user id="2" username="User2" />
    <user id="3" username="User3" />
  </users>
</response>

XML (タグのみを使用)

<response>
  <success>1</success>
  <users>
    <user>
      <id>1</id>
      <username>User1</username>
    </user>
    <user>
      <id>2</id>
      <username>User2</username>
    </user>
    <user>
      <id>3</id>
      <username>User3</username>
    </user>
  </users>
</response>

PHP では、次の方法で JSON を出力できます。

<?php

$response = array(
  'success': True,
  'users': array(
    array('id' => 1, 'username' => 'User1'),
    array('id' => 2, 'username' => 'User2'),
    array('id' => 3, 'username' => 'User3')
  )
)

print json_encode($response);

タグの属性を利用するかしないかで、XMLの出力は少し複雑になります...

于 2013-03-25T20:10:38.157 に答える
0

ここで必要なのは、アプリがアクセスできる API です。これらは好きなように定義できますが、RESTful 実装など、他の方法よりも一般的な方法もあります。

rest を使用すると、GET、POST、UPDATE、および DELETE の 4 つの動詞を使用して、ドメイン上のデータのアクセス ポイントを定義できます。あなたはおそらくこれらのうちの2つを認識しています。

Slim Framework for php などのライブラリを使用すると、次のようにアクセス ポイントを定義できます。

    self::$Slim->post('/document', '\MyApp\DocumentController::newDocument');
    // Get all documents for authenticated user
    self::$Slim->get('/document', '\MyApp\DocumentController::getAllDocuments');

この例では、Web サービスは /document への post または get 要求を受け入れます。ここで、get は「すべてのドキュメントを取得する」ことを意味し、post は「新規作成」を意味します。これらの関数は静的であるため、特定のケースですべてのコントローラーをインスタンス化する必要はありません。

どちらの場合も、結果は JSON を使用して発行されます。iOS と Android の両方で、組み込み関数またはサードパーティ ライブラリを使用して JSON を解釈できます。個人的には、iOS 用の AFNetworking が気に入っています。

つまり、www.yourdomain.com/api を作成し、Slim Framework を使用して /api/document などのエントリ ポイントを追加し、これらのエントリ ポイントにロジックを実行させます。JSON を使用して応答します。たとえば、php の json_encode() を使用します。アプリ側では、AFNetworking を使用してリクエストを作成し、JSON データを解釈します。

繰り返しますが、これらは私の好みであり、他の方法もあります。

頑張ってください!

于 2013-03-25T20:11:41.640 に答える