7

对不起,如果这是一个基本问题。但我打算为我的网站制作一个 api。首先这个 api 将由我使用,但稍后我将发布给开发人员使用它。我很困惑,这个网站将用于移动应用程序和网站。我打算为此制作android应用程序。

问题是我是否必须用不同的语言制作这个 api,即在 Java 中用于 android 平台,在 Objective C 中用于 iOS 以及 javascript 和 php 用于 web?

如果我只在 javascript 中制作它,它会适用于多个平台吗?

4

4 回答 4

7

在服务器端,您的 JSON API 将在一个平台上以一种语言编写,这可以是 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"
   }
}

然后,有人可以使用 Android JSON 对其进行解码。

于 2012-05-18T07:24:18.417 回答