7

これが基本的な質問である場合は申し訳ありません。しかし、私は自分のWebサイト用のAPIを作成することを計画しています。最初にこのAPIが使用されますが、後で開発者が使用できるようにリリースします。私は混乱しています。このウェブサイトはモバイルアプリとウェブサイトの両方に使用される予定です。このためのAndroidアプリを作る予定です。

問題は、このAPIをさまざまな言語で作成する必要があるかどうかです。つまり、Androidプレートフォームの場合はJavaで、iOSの場合はObjective Cで、Webの場合はjavascriptとphpで作成する必要がありますか?

これをjavascriptでのみ作成した場合、いくつかのプラットフォームで機能しますか?

4

4 に答える 4

7

サーバー側では、JSON API は 1 つのプラットフォーム上の 1 つの言語で記述されます。これは、PHP、.NET、または選択した任意のプラットフォームです。

クライアント側 (iPhone、Android など) では、リクエストを作成し、JSON API へのレスポンスを処理できるクライアントを作成する必要があります。

ただし、クライアント API 全体で一貫性を確保するために、リクエスト/リプライ パターンなどのパターンを使用できます。私はこれを使いやすく、実装しやすいので、常に使用しています。

アイデアは、すべての JSON API メソッドに対して、Request クラスと Response クラスを用意することです。JSON API を表すサービス クライアントも作成します。

アドレス帳から連絡先の詳細を取得する JSON サービスがあるとします。次のサービス メソッドを使用できます。

/contact/{id}
/address_book
/save_contact/{id}

私のサービス クライアント (Java の例) は、次のインターフェイスを持つことができます。

public interface AddressBookClient {
    public GetContactResponse getContact(GetContactRequest request);
    public GetAddressBookResponse getAddressBook(GetAddressBookRequest request);
    public SaveContactResponse saveContact(SaveContactRequest request);
}

実装はクライアント プラットフォームによって異なりますが、同じアプローチまたはパターンを使用すると、一貫性が保たれます。

それが役立つことを願っています。

于 2012-05-18T07:03:18.763 に答える
6

JSONベースのRESTフルAPIのようなものを提案します。

これにより、API言語が独立します。

APIが作成されると、一般的な言語でクライアントライブラリを作成できます。

于 2012-05-18T06:47:37.260 に答える
3

API が JSON ベースである場合、今日のほとんどすべての一般的な言語に実装されています。異なる言語でビルドされたアプリケーション間で問題なく通信できます。

公式の JSON サイトで、さまざまな言語のライブラリの広範なリストを確認できます。

于 2012-05-18T06:48:35.760 に答える
1

私はURLを使用してJSONをリクエストしています:

api.example.com/api.php?action=User.login&username=admin&password=111

JSON応答は次のとおりです。

{
   "resultcode":100,
   "resultdata":{
      "id":"1",
      "username":"admin",
      "password":"$1$$TUPijxhaACBBZHMowbtgD.",
      "name":"chenwendong",
      "email":"mdowen@foxmail.com",
      "sex":"\u7537",
      "age":"11",
      "phone":"15811111111",
      "address":"\u5317\u4eac\u7231\u7231\u7231\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a",
      "province_id":"1",
      "city_id":"1",
      "last_login_ip":"127.0.0.1",
      "last_login_time":"2012-05-07 17:32:55",
      "state":"1",
      "intime":"2012-05-07 09:49:11",
      "is_deleted":"0",
      "province":"\u5317\u4eac\u5e02",
      "city":"",
      "sid":"fcd6321c4cd4748a0cee2e7cc337506b",
      "uid":"1",
      "message_count":"11"
   }
}

次に、誰かがAndroidJSONを使用してそれをデコードできます。

于 2012-05-18T07:24:18.417 に答える